zoukankan      html  css  js  c++  java
  • SQL Server 2016新特性:Query Store

    使用Query Store监控性能

    SQL Server Query Store特性可以让你看到查询计划选择和性能。简化了性能调优,可以快速的发现因为查询计划的选择导致的性能的差别。Query Store自动历史的查询,计划和运行时的统计信息,保留这些可以用来检查。数据通过时间窗口来分隔数据,你可以看见数据库的使用模式,并且理解查询计划在服务中的变化。可以你使用ALTER DATABASE SET选项来配置Query Store。
     
    启动Query Store
    ALTER DATABASE AdventureWorks2012 SET QUERY_STORE = ON;
     
    Query Store中的信息
    特定查询的执行计划涉及到很多,比如统计信息变化,schema变化,索引的创建和删除等等。过程的执行计划只会保存最新的执行计划,计划也会因为内存压力来牺牲计划的cache。因为执行计划的变化导致性能问题也是比较多的。
    因为每个查询都保留了多个执行计划,可以通过策略强制查询处理器使用特定的执行计划。Query Store的计划强制和查询hint的USE PLAN相似,不需要应用程序做任何修改。计划强制可以解决查询的计划修改导致的性能退化。
    Wait Stats,是另外一个source用来调优SQL Server。对于长时间,wait stats是实例级别的,并不能回归到实际查询。在SQL Server 2017,在Query Store中增加另外一个维度来跟踪wait stats。
     
    Query Store特性使用场景:
    • 快速查找和通过强制到之前的查询计划,修复一个计划性能回归
    • 时间窗口内查询的运行次数。
    • 查看过去的x小时,top n查询
    • 审计给定查询的查询计划
    • 分析特定数据库的资源使用
    • 等待resource的top n查询
    • 理解特定查询和计划的wait nature
     
    Query Store包含的三个Store:
    • plan store,用来保存执行计划信息
    • runtime stats store,保存执行的统计信息
    • wait stats store,保存wait stats
    可以通过max_plans_per_query配置每个查询的保存的plan数量,为了提高性能写入这些store都是一部的,为了最小化空间的使用运行时的统计信息,按某个时间范围内聚合。
    以下查询返回query store中的查询和计划:
     
    SELECT Txt.query_text_id, Txt.query_sql_text, Pl.plan_id, Qry.* 
    FROM sys.query_store_plan AS Pl 
    JOIN sys.query_store_query AS Qry 
        ON Pl.query_id = Qry.query_id 
    JOIN sys.query_store_query_text AS Txt 
        ON Qry.query_text_id = Txt.query_text_id ;
     
    查找等待查询
    从SQL Server 2017开始每个查询的等待信息,可以使用  sys.query_store_wait_stats (Transact-SQL) 查询
     
     
  • 相关阅读:
    《2048》开发5——实现计分功能
    《2048》开发4——继续编辑GameView类,实现游戏逻辑
    《2048》开发3——编辑Card类
    robotframework(rf)中对时间操作的datetime库常用关键字
    弹框和单选框,复选框
    Selenium IDE安装与使用
    全面的功能测试点总结
    RF新手常见问题总结--(基础篇)
    常用断言关键字(rf中)
    jmeter录制(ios)app脚本
  • 原文地址:https://www.cnblogs.com/Amaranthus/p/7808305.html
Copyright © 2011-2022 走看看