Sql server 如何确定SQL Server中正在编译的内容
在跟踪我的SQLServer2008STDEdition安装上的性能监视器时,我注意到SQL编译/秒每5秒左右就会出现峰值,从3到大约50次 我们每秒的编译与批处理请求的比率也相对较高。我知道理想的比例应该是1/10,但我们的工作更像是8/10 db支持有大量应用程序的繁忙网站,因此很难确定是什么导致了过度编译,尤其是5秒的峰值。几乎所有的查询都是存储过程调用,而不是嵌入式SQL,我们有大量(48gb)RAMSql server 如何确定SQL Server中正在编译的内容,sql-server,sql-server-2008,Sql Server,Sql Server 2008,在跟踪我的SQLServer2008STDEdition安装上的性能监视器时,我注意到SQL编译/秒每5秒左右就会出现峰值,从3到大约50次 我们每秒的编译与批处理请求的比率也相对较高。我知道理想的比例应该是1/10,但我们的工作更像是8/10 db支持有大量应用程序的繁忙网站,因此很难确定是什么导致了过度编译,尤其是5秒的峰值。几乎所有的查询都是存储过程调用,而不是嵌入式SQL,我们有大量(48gb)RAM 是否有一种方法可以在给定的时间点查看当前正在编译的查询?如果是这样,我们可以确定是否有
是否有一种方法可以在给定的时间点查看当前正在编译的查询?如果是这样,我们可以确定是否有问题。当我过去不得不研究计划缓存/过度查询重新编译的问题时,我遵循了Microsoft白皮书中提供的指导,我强烈建议阅读,因为它涵盖了计划缓存、查询计划重用、重新编译的原因,确定重新编译和其他相关主题 话虽如此,SQL Server Profiler(如果作为客户端工具安装的一部分安装,则应位于Microsoft SQL Server 2008->Performance Tools下)公开了三个与查询编译直接相关的事件,这些事件可能对您有所帮助:
- 光标
- 草人
- 演出
- 用于查询编译的Showplan XML
- 存储过程
- SP:重新编译
- 1=架构已更改
- 2=统计数据已更改
- 3=重新编译DNR
- 4=设置选项已更改
- 5=临时表已更改
- 6=远程行集已更改
- 7=已更改浏览烫发
- 8=查询通知环境已更改
- 9=MPI视图已更改
- 10=光标选项已更改
- 11=具有重新编译选项
- 储存程序
- SP:启动
- SP:StmtStarting
- SP:重新编译
- SP:已完成
- 演出
- 自动统计