sql server08 查询优化系列 3-2 sql 查询性能分析
2012-05-11 17:30
155 查看
没有profiler的情况下 的 查询性能度量
动态管理视图
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; } 可以查看查询性能. 可以看到此时运行时间最长的查询或者最多物理读操作.
识别开销较大的查询
sql serve的目标是 在最短的时间 将结果集返回给客户.
为此,sql server 有一个内建的,基于开销的优化程序.叫做查询优化器 (query optimizer),它 生成一个
成本效益高的策略(称为查询计划).
查询计划 计算许多因素的权重,包括(但是不限于) 执行查询 所需的cpu,内存以及磁盘I/O,的使用情况--这些均来自
于 索引维护或过程中生成的统计..
在跟踪返回的数据中, cpu和reads 还显示了查询的开销所在.
cpu 表示 用于执行查询的cpu时间.
reads列 表示 一个查询操作 的 逻辑页面的数量,从而指出 查询产生 的 内存压力.
它还提供了 磁盘压力的指标.
因为内存页面 必须在操作查询中被备份,在第一次数据访问期间写入,并且在内存瓶颈的时候 被移到磁盘上.
查询的逻辑读越大,磁盘压力的可能性就越大. 过多的逻辑页面页增加了 cpu用于管理这些页面的 负载.
导致大量逻辑读的查询 通常在相应的大数据集上得到锁.即使读 页需要在所有数据上的共享锁.这些查询阻塞了其他
请求修改这些数据的查询,但是不阻塞 读取数据的查询.就会导致阻塞.
开销大的查询 分为两类:
单次执行: 查询的一次单独执行的开销较大.
多次执行:查询本身开销不大,但是该查询重复执行,导致系统资源上的压力/
1.单次执行开销较大的查询
未完待续..
动态管理视图
sys.dm_exec_query_stats ---> http://msdn.microsoft.com/en-us/library/ms189741.aspx
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; } 可以查看查询性能. 可以看到此时运行时间最长的查询或者最多物理读操作.
识别开销较大的查询
sql serve的目标是 在最短的时间 将结果集返回给客户.
为此,sql server 有一个内建的,基于开销的优化程序.叫做查询优化器 (query optimizer),它 生成一个
成本效益高的策略(称为查询计划).
查询计划 计算许多因素的权重,包括(但是不限于) 执行查询 所需的cpu,内存以及磁盘I/O,的使用情况--这些均来自
于 索引维护或过程中生成的统计..
在跟踪返回的数据中, cpu和reads 还显示了查询的开销所在.
cpu 表示 用于执行查询的cpu时间.
reads列 表示 一个查询操作 的 逻辑页面的数量,从而指出 查询产生 的 内存压力.
它还提供了 磁盘压力的指标.
因为内存页面 必须在操作查询中被备份,在第一次数据访问期间写入,并且在内存瓶颈的时候 被移到磁盘上.
查询的逻辑读越大,磁盘压力的可能性就越大. 过多的逻辑页面页增加了 cpu用于管理这些页面的 负载.
导致大量逻辑读的查询 通常在相应的大数据集上得到锁.即使读 页需要在所有数据上的共享锁.这些查询阻塞了其他
请求修改这些数据的查询,但是不阻塞 读取数据的查询.就会导致阻塞.
开销大的查询 分为两类:
单次执行: 查询的一次单独执行的开销较大.
多次执行:查询本身开销不大,但是该查询重复执行,导致系统资源上的压力/
1.单次执行开销较大的查询
未完待续..
相关文章推荐
- sql server08 查询优化系列 3-1 sql 查询性能分析 sql profiler
- sql server08 查询优化系列 2系统性能分析
- 【MySql性能优化二】利用explain进行查询和分析sql语句
- 性能优化系列---查询高cup的sql
- SQL Server SQL性能优化之--pivot行列转换减少扫描计数优化查询语句
- SQL连接查询及性能分析
- .Net+SQL Server企业应用性能优化笔记3——SQL查询语句
- SQL查询性能分析
- mysql经纬度查询并且计算2KM范围内附近用户的sql查询性能优化实例教程
- mysql性能优化-慢查询分析、优化索引和配置
- 一个用户SQL慢查询分析,原因及优化
- 优化 SQL Server 查询性能----分析执行计划,索引与索引视图,如何识别要优化的查询
- mysql性能优化-慢查询分析、优化索引和配置
- SQL SERVER 查询性能优化分析事务与锁1
- mysql慢查询,sql性能分析
- mysql性能优化-慢查询分析、优化索引和配置
- 优化 SQL Server 查询性能----分析执行计划,索引与索引视图,如何识别要优化的查询
- SQL 查询性能优化 解决书签查找
- mysql性能优化-慢查询分析、优化索引和配置
- mysql性能优化-慢查询分析、优化索引和配置 MySQL索引介绍