当前位置: 首页 > news >正文

SQL问题分析与诊断(8)——其他工具和技术

8.3. 其他工具和技术

查询计划的主要用途是理解查询如何执行,进而发现查询性能问题。除了查询计划,优化查询时通常还会收集性能指标。下面,我们简要了解下用于收集性能指标的常用方法。

​​​​​​​8.3.1. SET命令收集IO及时间统计信息

优化查询时,大家通常用STATISTICS IO/TIME来获取单个查询的性能指标,仅需在查询前后使用SET命令即可。如下所示:

SET STATISTICS IO ON;

SET STATISTICS TIME ON;

select top(5) * from t1 where c1=1;

SET STATISTICS IO OFF;

SET STATISTICS TIME OFF;

针对该查询语句获取的统计信息如下所示:

图8.3.1-1 SET命令获取的查询语句统计信息

这种方法优点是简单易行,但其劣势也比较明显,那就是其获取的指标不太准确,因为其本身可能会对统计信息的精度产生干扰,此外,可能还会漏掉某些资源消耗的统计。

​​​​​​​8.3.2. 包含客户端统计信息

如果一个经常运行很快的查询,显示结果时产生巨大的开销,那么,可以通过SSMS的“包含客户端统计信息(Include Client Statistics)”方法来进行分析研究。具体操作方法为:勾选查询选项(query options)中的“运行后抛弃结果(discard the results after execution)”,并点击开启查询窗口上边一排快捷按钮中的“包含客户端统计信息(Include Client Statistics)”,然后,运行要分析研究的查询以查看消耗的时间,为了更加便于观察和研究,可以将查询一次运行数遍(例如,一次运行1000遍:“GO 1000”)。

​​​​​​​8.3.3. SQL跟踪和分析器(SQL Trace and Profiler)

与跟踪事件(Trace Events)在收集指标时会对服务器造成负面影响不同,图形分析器(Profiler GUI)采用不同的缓冲机制。虽然,还是不建议在生产服务器上运行分析器和SQL跟踪。这两个工具在将来的版本也许会被废弃,因此,如果可能还是尽量不要使用这两个工具。

​​​​​​​​​​​​​​8.3.4. 扩展事件(Extended Events)

建议用扩展事件获取IO和时间指标。首先,扩展事件目前在微软支持周期;其次,相较于SQL跟踪,扩展事件提供更好更有效的过滤;还有,扩展事件对系统和统计结果的影响较小,且其测量的性能和IO指标清晰易懂。如果使用SQL Server 2012或更高版本,可以通过功能强大的图形界面查看收集的指标。

相关文章:

  • ECMAScript 7~10 新特性
  • RLAgent note
  • 数据结构与算法-动态规划-线性动态规划,0-1背包,多重背包,完全背包,有依赖的背包,分组背包,背包计数,背包路径
  • 取消echarts地图悬浮时默认黄色高亮
  • Sigma-Delta ADC调制器的拓扑结构分类
  • java中的JNI调用c库
  • 若依微服务集成Flowable仿钉钉工作流
  • 【JavaScript】十八、页面加载事件和页面滚动事件
  • 基于AI的Web应用防火墙(AppWall)实战:漏洞拦截与威胁情报集成
  • 深入理解Java反射
  • 导入 Excel 批量替换文件名称及扩展名
  • react中通过 EventEmitter 在组件间传递状态
  • QTreeWidget 手动设置选中项后不高亮的问题
  • rbd块设备的id修改
  • 纳米软件储能电源模块自动化测试深度解析
  • Git版本管理系列:(三)远程仓库
  • vxe-table4.6 + vue3.2 + ant-design-vue 3.x 实现对列的显示、隐藏、排序
  • MYSQL-创建和使用表
  • Higress: 阿里巴巴高性能云原生API网关详解
  • 分享:批量识别图片文字并重命名,根据图片文字内容对图片批量重命名,Python和Tesseract OCR的完成方案
  • 软件开发应该学什么专业/seo推广论坛
  • 太原网站设计开发公司/百度指数1000搜索量有多少
  • 公司网站重新备案/aso优化渠道
  • 企业网站建设案例哪个品牌好/seo研究中心南宁线下
  • 凡科做网站在百度能看见吗/网站制作步骤流程图
  • 单页式网站系统/关键词排名点击软件首页