2023 Performance Improvements¶
Important
Performance improvements often target specific query patterns or workloads. These improvements might or might not have a material impact on a specific workload.
The following performance improvements were introduced in 2023:
| Released | Description | Impact |
|---|---|---|
| December 2024 | Improved column replication. | Reduces the time spent in the SECONDARY_DOWNLOADING_METADATA phase of a refresh operation for table columns. Improvements scale linearly with the number of columns replicated. |
| November 2023 | Improved execution times for some SHOW commands. | Reduces the execution time for the SHOW TABLES, SHOW SCHEMAS, and SHOW DATABASES commands. Improvements are most significant for queries that return large result sets. |
| November 2023 | Search Optimization: Support for substring search in semi-structured data. (General Availability) | Improves the performance of point lookup queries that use substring and regular expression functions against semi-structured data, including ARRAY, OBJECT, and VARIANT types. Previously, only equality searches on such columns could be optimized. |
| October 2023 | Reduced maintenance costs for materialized views. | Reduces materialized view maintenance credits by improving the utilization of service resources. |
| October 2023 | Improved compile times for SQL expressions. | Reduces the compilation time of queries that contain many SQL expressions. |
| September 2023 | Improved compile times. | Reduces compilation times by skipping optimizations that will not result in performance improvements. |
| August 2023 | Ability to use a query hash to identify patterns and trends in query execution. | Helps to monitor and analyze recurring queries by including a query hash of each query in ACCOUNT_USAGE views and INFORMATION_SCHEMA table functions. Can be used to determine the effects of performance improvements like choosing a new cluster key. |
| August 2023 | Improved execution times for non-clustered tables. | Reduces execution time for SELECT and DML operations against non-clustered tables with micro-partitions that are smaller than average. |
| August 2023 | Ability to call the GET_QUERY_OPERATOR_STATS function to obtain query profile statistics. (General Availability) | Helps to programmatically debug queries and gain insights into query performance. |
| August 2023 | Improved execution times for joins on wide build-side rows. | Reduces execution time and improves memory management for queries matching wide rows on the build side of a join (for example, rows that include columns with long strings). |
| July 2023 | Improved compile times for materialized views. | Reduces compilation times for materialized views based on tables that have 100s or 1000s of micro-partitions. |
| July 2023 | Ability to use Snowpipe Streaming. (General Availability) | Enables low-latency streaming data pipelines to support writing data rows directly into Snowflake. |
| July 2023 | Improved selectivity and cardinality estimation. | Uses improved plan selection to reduce execution time for queries with low selectivity. |
| July 2023 | Search Optimization Update: Support for substring search in VARIANT types. (Preview) | Improves the performance of point lookup queries that use substring and regular expression functions against semi-structured data, including ARRAY, OBJECT, and VARIANT types. |
| July 2023 | Improved compile times for simple queries and DML statements. | Reduces compilation times and improves memory management for simple DML statements and single-table queries with simple equality or range predicates. |
| June 2023 | Improved execution times for SELECT statements with LIMIT and ORDER BY clauses. | Reduces execution time of some queries with long-running SELECT statements containing both LIMIT and ORDER BY clauses. |
| June 2023 | Improved execution times against secure views. | Uses predicate pushdown to reduce execution time for queries against secure views. |
| May 2023 | Improved compile times for queries with numerous extraction expressions. | Reduces compilation times for queries with many extraction expressions (such as those used for processing JSON). |
| May 2023 | Improved compile times for queries with numerous subqueries. | Reduces compilation time for queries with 100+ subqueries. |
| April 2023 | Search Optimization Update: Ability to enable Search Optimization for specific columns. (General Availability) | Point lookup queries that act upon a column can be improved without incurring the expense of enabling Search Optimization for the entire table. |
| April 2023 | Search Optimization Update: Support for substring operations. (General Availability) | Improves the performance of point lookup queries that use substring operations such as LIKE and ENDSWITH. |
| April 2023 | Search Optimization Update: Support for VARIANT data. (General Availability) | Improves the performance of point lookup queries that act upon VARIANT data (such as JSON). |
| April 2023 | Search Optimization Update: Support for geospatial functions with GEOGRAPHY objects. (General Availability) | Improves the performance of point lookup queries that use a geospatial function in a predicate. |
| April 2023 | Ability to use the query acceleration service to speed up queries against tables that have Search Optimization enabled. (General Availability) | Additional compute power provided by the query acceleration service can be combined with performance boost provided by search optimization. |
| March 2023 | Ability to use Snowpipe Streaming. (Preview) | Enables low-latency streaming data pipelines to support writing data rows directly into Snowflake. |
| February 2023 | Ability to use the query acceleration service. (General Availability) | Improves overall warehouse performance by reducing the impact of outlier queries. |
| February 2023 | Ability to call the GET_QUERY_OPERATOR_STATS function to obtain programmatic Query Profile statistics. (Preview) | Helps debug queries and gain insights into query performance. |
| February 2023 | Ability to use memory-optimized warehouses. | Memory-intensive queries can be run on Snowpark-optimized warehouses that provide 16x more memory per node and 10x the local cache compared with standard warehouses. |