Quantcast
Channel: CodeSection,代码区,SQL Server(mssql)数据库 技术分享 - CodeSec
Viewing all articles
Browse latest Browse all 3160

Query Store in SQL Server 2016 Overview

$
0
0

QueryStore feature in SQL Server 2016 is very helpful for any SQL Server resource to identify and troubleshoot the performance issues in SQL Server. This feature enables to store the query information along with query plan. The query statistics as well can be collected associated with each query.

Applies to: SQL Server 2016 and later

Why do we need QueryStore feature or How does it help?

Yes, we do have an option to analyse the query execution before Querystore using Cachedplan in earlier versions. However, the downside is Cached plan will be saved in memory and it will not be available once SQL Server has been restarted. This was always a challenge for DBA/performance engineer to identify issues with Query execution.

QueryStore actually stores plan and other information in memory initially and as per the configuration it writes to disk.So, even SQL Server gets restarted, the information can be collected from the disk(those written in the disk).

Let us see the plan of the query to understand in detail.

In the plan we can see there are objects like plan_persist_* (to read the data from disk) and QUERY_STORE_*_IN_MEM (to read data from memory)

*- denotes different objects like query/plan/runtime_stats etc…

To understand simply, let us look at the plan for a simple dmv: Sys.query_store_query


Query Store in SQL Server 2016   Overview

What do we need to configure for Querystore?


Query Store in SQL Server 2016   Overview

General ->

Operation Mode(Actual) This is disabled by default to represent the Actual mode of Operation.

Operation Mode(Requested) This is to configure the mode of Operations.

Options are OFF to disable the QueryStore

Read Only You can ONLY read information from QueryStore

Read Write You can READ and WRITE information to QueryStore

Monitoring >

Data Flush Interval(Minutes) This is to specify how frequent the data needs to write to Disk from memory. As higher the number, there is a risk of losing data(if any restart occurs between the specified vaue), lower the number there is an overhead of writing the information to disk. Default value is 15 minutes.

Statistics Collection Interval This is to record the information about execution statistics of queries being executed.Default is 1 hour.

Query Store Retention >

Max ize(MB) The maximum size in MB that can be allocated to store the information. Default value is 100. Once the size reaches out the specified value, it will NEVER write further, only read is available.

Query Store Capture Mode This is to determine what needs to be collected.

Options are All (default) which collects all query information

Auto Collects only the relevant queries, filters out the insignificant queries.However, there is no external influence on identifying the significance, its completely an internal process.

None No collection of information

Size Based Cleanup Mode

Auto (Default if QueryStore is enabled.)This will cleanup old and least expensive queries from QueryStore as per the size specified.

Off No automatic cleanup

Stale Query Threshold(Days) Number days the Query information stays for. By enabling the QueryStore, the default value sets as 30 days.

Where do we get the information from QueryStore?

Microsoft has provided a good number of DMVs to get the QueryStore information.

Sys.database_query_store_options

Sys.query_store_query

Sys.query_store_query_text

Sys.query_context_settings

Sys.query_store_plan

Sys.query_store_runtime_stats

Sys.query_store_runtime_stats_interval

The above DMVs provide enough information about Query execution statistics for you to troubleshoot your query performances.

How to purge the querystore information?

You can always purge the querystore information using wizard “Purge Query Data” in the Database Properties > Query Store or by using the below T-SQL:

ALTER DATABASE [Test] SET QUERY_STORE CLEAR ALL

Viewing all articles
Browse latest Browse all 3160

Latest Images

Trending Articles