数据库性能优化-1-使用SQL Server Profiler工具和执行计划分析
来源:互联网 发布:北京快三遗漏数据 编辑:程序博客网 时间:2024/06/01 10:19
背景:由于项目人数众多,同一个界面可能有几个人进行编码。不同的人在SQL语句性能上有所不同。有些页面存在短暂的卡屏,为了快速找出问题所在。
由于涉及的项目使用的SQL SERVER数据库,这里使用SQL Server Profiler工具:
1、打开SQL Server Profiler 工具:
2、可以使用WIndows认证,也可以使用sa认证
3、
1)、General:大部分可以默认
Save to file:将这次跟踪的记录写入到文件可以为以后的DataBase Engine Tuning Advisor提供输入
Save to Table:将这次跟踪的记录存入到表中。
2)、Events Selection
4、开始点击网站,执行的SQL语句会被监听到:
重点是Duration的时间进行分析找出时间最大的。这里Duration 的单位是毫秒。
Reads 和 Writes 也是重点研究的对象,当读写非常大的时候可以考虑复制TextData里面的指令进行真实的执行计划分析。
5、SQL语句的磁盘IO和CPU消耗时间分析
1)、直接在窗口中输入命令:SET STATISTICS IO ON、SET STATISTICS TIME ON
2)、通过工具栏打开
2-1、
2-2、选中 SET STATISTICS TIME 和 SET STATISTICS IO
能够快速查看某句SQL语句磁盘IO的读写,某句SQL语句CPU执行时间
Scan count : Number of seeks/scans started after reaching the leaf level in any direction to retrieve all the values to construct the final dataset for the output.
意思就是为了构建最终输出从到达叶子节点后向任意方向检索所有的值进行扫描的次数,我的理解就是全表扫描的次数。
logical reads:在缓存中读取的页数。
physical reads 硬盘中读取的页数。
read-ahead reads 为查询提前放入到缓存的页数。
lob logical reads lob physical reads,lob read-ahead reads:文本、图片、或者大数据类型从数据缓存、硬盘读取的页数、为查询提前放入到缓存页数。
6、SQL真实的执行计划分析
1)、打开真实执行计划分析
2、执行SQL语句
1、SELECT * FROM YFOutstock YO INNER JOIN YFOutstockDetail YOD ON YO.ID = YOD.Parent
2、SELECT * FROM YFOutstock YO INNER JOIN YFOutstockDetail YOD ON YO.ID = YOD.Parent WHERE YO.ID = '1D39C77A-AD61-4D43-98A6-9F86905B6DB1'
从真实执行计划可以分析:
语句1查询的成本 91%,语句2查询的成本 9%。很明显性能语句1 可能需要进行优化
解决办法:
1)可以将 * 替换成我们需要的字段,不需要的字段,就不需要筛选,可以避免书签查找。
2)当发现对某个表进行全表扫描(Table Scan)的时候需要,尽量避免全表扫描(可能是我们没有建立恰当的索引:聚索引和非聚集索引)。
3)使用谓词筛选出符合条件。
4)尽量避免两张大表进行连接查询(可以适当建立违反第3范式的表,减少表与表之间的关联)。
- 数据库性能优化-1-使用SQL Server Profiler工具和执行计划分析
- SQL Server 性能工具(SQL Server Profiler和数据库引擎优化顾问)使用方法详解
- Oracle性能优化读书笔记(1)-SQL执行计划分析工具
- Sql2005性能工具(SQL Server Profiler和数据库引擎优化顾问)使用方法详解
- Sql2005性能工具(SQL Server Profiler和数据库引擎优化顾问)使用方法详解
- [Sql2005笔记] Sql2005性能工具(SQL Server Profiler和数据库引擎优化顾问)使用方法详解
- PL/SQL性能优化工具profiler的部署和使用
- Sql性能检测工具:Sql server profiler和优化工具:Database Engine Tuning Advisor
- Unity3d开发性能优化-性能分析工具Profiler使用
- sql server 数据库优化--显示执行计划
- sql server 数据库优化--显示执行计划
- iOS使用Instrument-Time Profiler工具分析和优化性能问题
- SQL Server Profiler和数据库引擎优化顾问
- 应用Profiler优化SQL Server数据库系统
- 应用Profiler优化SQL Server数据库系统
- SQL Server 强大的分区技术优化执行计划索引实例详解(使用语句检测和优化数据库 (MSSQL个人笔记之数据库优化之路 四)
- Microsoft SQL Server 2008性能分析之执行计划
- 优化 SQL Server 查询性能----分析执行计划,索引与索引视图,如何识别要优化的查询
- jquery的$().each,$.each的区别
- SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释
- 织梦调用栏目的几种方法
- 网络营销涉及的137个名词
- Struts2框架基本构建,Maven工具使用以及搭建私服,Hbernate框架构建以及连接mysql数据库
- 数据库性能优化-1-使用SQL Server Profiler工具和执行计划分析
- STM32+FATFS文件系统连续在同一个txt文件里写入内容
- centos7安装mysql(yum安装和无网络安装)
- Unity的按钮不响应点击
- Oracle数据库导出导入所有的表结构和表数据命令
- CSS中包含块,层叠上下文,BFC,IFC究竟是什么?
- 操作系统中的管程
- 数据库性能优化-2-不太建议使用相关子查询
- 融云实现两人聊天