博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql server08 查询优化系列 3-2 sql 查询性能分析
阅读量:6951 次
发布时间:2019-06-27

本文共 762 字,大约阅读时间需要 2 分钟。

没有profiler的情况下 的 查询性能度量

动态管理视图

sys.dm_exec_query_stats  --->
可以查看查询性能.  可以看到此时运行时间最长的查询或者最多物理读操作.

识别开销较大的查询

sql serve的目标是 在最短的时间 将结果集返回给客户.

为此,sql server 有一个内建的,基于开销的优化程序.叫做查询优化器 (query optimizer),它 生成一个

成本效益高的策略(称为查询计划).

查询计划 计算许多因素的权重,包括(但是不限于) 执行查询 所需的cpu,内存以及磁盘I/O,的使用情况--这些均来自

于 索引维护或过程中生成的统计..

在跟踪返回的数据中, cpu和reads 还显示了查询的开销所在.

cpu 表示 用于执行查询的cpu时间.

reads列 表示 一个查询操作 的 逻辑页面的数量,从而指出 查询产生 的 内存压力.

它还提供了 磁盘压力的指标.

因为内存页面 必须在操作查询中被备份,在第一次数据访问期间写入,并且在内存瓶颈的时候 被移到磁盘上.

查询的逻辑读越大,磁盘压力的可能性就越大. 过多的逻辑页面页增加了 cpu用于管理这些页面的 负载.

 

导致大量逻辑读的查询 通常在相应的大数据集上得到锁.即使读 页需要在所有数据上的共享锁.这些查询阻塞了其他

请求修改这些数据的查询,但是不阻塞 读取数据的查询.就会导致阻塞.

 

开销大的查询 分为两类:

  1. 单次执行: 查询的一次单独执行的开销较大.
  2. 多次执行:查询本身开销不大,但是该查询重复执行,导致系统资源上的压力/

 

1.单次执行开销较大的查询

未完待续..

转载于:https://www.cnblogs.com/Mr-Joe/archive/2012/05/11/2496430.html

你可能感兴趣的文章
python基础之列表生成式和生成器
查看>>
关于java.lang.ClassNotFoundException
查看>>
转换成CSV文件、Word、Excel、PDF等的方法--读取CSV文件的方法
查看>>
一条SQL语句查询出成绩名次 排名 (转)
查看>>
什么是.NET应用程序域
查看>>
ZooKeeper 安装与部署
查看>>
Picnic Planning
查看>>
文章标题
查看>>
约瑟夫问题
查看>>
NinePatchChunk.java分析
查看>>
非template/render模式下使用iview组件时标签需要转化
查看>>
搜狐笔试 最大连续递增子段和 关键词连续递增
查看>>
.NET URL 301转向方法的实现
查看>>
新浪微博开放平台链接耗尽的情况分析
查看>>
极限编程的12个实践原则
查看>>
javascript--返回顶部效果
查看>>
C# NamePipe使用小结
查看>>
ZooKeeper Watcher注意事项
查看>>
Linux下清理内存和Cache方法
查看>>
表单元素的外观改变(webkit and IE10)
查看>>