Skip to content

Commit aa0c3c1

Browse files
authored
Intelligent QP updates
Intelligent QP updates
1 parent ac0ee46 commit aa0c3c1

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

docs/sql-server/what-s-new-in-sql-server-vnext.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "What's new in SQL Server vNext | Microsoft Docs"
33
ms.custom: ""
4-
ms.date: "08/09/2018"
4+
ms.date: "08/29/2018"
55
ms.prod: "sql-server-2018"
66
ms.reviewer: ""
77
ms.suite: ""
@@ -72,11 +72,13 @@ Continue reading for more details about these features.
7272

7373
- **Approximate COUNT DISTINCT** returns the approximate number of unique non-null values in a group. This function is designed for use in big data scenarios and is optimized for the following conditions:
7474
- Access of data sets that are millions of rows or higher AND
75-
- Aggregation of a column or columns that have a large number of distinct values
76-
- Responsiveness is more critical than absolute precision.
77-
In this case, `APPROXIMATE_COUNT_DISTINCT` yields results typically within 2% of the precise answer in a small fraction of the time.
75+
- Aggregation of a column or columns that have a large number of distinct values AND
76+
- Responsiveness is more critical than absolute precision. `APPROXIMATE_COUNT_DISTINCT` yields results typically within 2% of the precise answer in a small fraction of the time.
7877

79-
- **Batch mode on rowstores** targets analytic queries. These queries are characterized as scanning many rows, and doing significant aggregations, sorts, and group-by operations across these rows. Batch mode has been reserved for queries which involve Columnstore indexes in previous releases. Performing scans and calculations on batches of 900 – 1000 rows at a time rather than row by row is much more efficient for queries where these sorts of operations are common. For queries that can take advantage of it, batch mode can easily make queries execute many times faster than the same query against the same data in row mode. This feature is enabled by default under database compatibility level 150.
78+
- **Batch mode on rowstore** enables batch mode without requiring a columnstore index. Batch mode processing allows query operators to process data more efficiently by working on a batch of rows at a time instead of one row at a time. A number of other scalability improvements are tied to batch mode processing. In earlier versions, batch mode only worked in conjunction with columnstore indexes. This feature is enabled by default under database compatibility level 150. Workloads that may benefit:
79+
- A significant part of the workload consists of analytical queries (as a rule of thumb, queries with operators such as joins or aggregates processing hundreds of thousands of rows or more), AND
80+
- The workload is CPU bound AND
81+
- Creating a columnstore index adds too much overhead to the transactional part of your workload, OR creating a columnstore index is not feasible because your application depends on a feature that is not yet supported with columnstore indexes.
8082

8183
- **Scalar UDF inlining** automatically transforms scalar user-defined functions (UDF) into relational expressions and embeds them in the calling SQL query, thereby improving the performance of workloads that leverage scalar UDFs. Scalar UDF inlining facilitates cost-based optimization of operations inside UDFs, and results in efficient plans that are set-oriented and parallel as opposed to inefficient, iterative, serial execution plans. This feature is enabled by default under database compatibility level 150.
8284

0 commit comments

Comments
 (0)