简单的SQL Server性能调优
目的是查看系统(应用程序+数据库)调用SQL Stored Procedure存储过程和SQL语句的性能,查出哪儿慢?哪个存储过程最耗用时间?
有的时候你在一个表设了好几个索引 ( Clustered / Non-clustered Index ),结果还是很慢(全表扫描),因为你的索引根本没有被命中,根本没有被出现在WHERE或者ORDER BY里面!
1. 打开Profiler:
"Start - Programs - SQL Server2005 - Performance Tools - Sql Server Profiler"
2. 点击工具栏第一个button - "New Trace..."
3. 在第一个Tab : General中打勾 "Save to table", 输出到表。
在弹出的窗口中选择master数据库, 表名随意,例如jq
4. 在第二个Tab : Events Selection中,不要选择Security安全和Session部分,只选择存储过程和SQL。
5. 点击RUN。
如果出现错误:“only TrueType fonts are supported. There id not a TrueType font”,则在Profiler的 Tools菜单->Options中选择"Choose Font..."选择其他字体即可。
6. 开始监控后,启动Application,运行多久随意,可以监控高峰时段也可以。监控结束后,点击Stop。
7. 打开SQL Server management studio, 链接到master数据库,输入sql语句:
select top 500 * from jq order by duration desc;
8. 可以看到耗时最久的存储过程。接下来具体分析每个存储过程的SQL语句。
可以通过执行计划( Execution Plan )来检测。
菜单:"Query" - "Display Estimated Execution Plan."
9. 修改SQL语句并调优,重复以上步骤。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述