我想要一个在测试我的应用程序时监视sql server的工具. applicatino当然会运行不同的查询.
而这种信息.
但我希望有一种方法来突出关键数据,例如可能有100个索引丢失,但其中99个会提高0.05%的性能,而其中一个会给查询带来6000%的好处.所以突出热点也很重要.
还需要商业产品(具有全部特征 – 没有限制 – 试用).
解决方法
你并不需要一个工具.我个人使用以下查询来向我展示sql Server认为它需要的索引,这显示了sql Server查找索引的频率,估计的改进等…
SELECT user_seeks * avg_total_user_cost * (avg_user_impact * 0.01) AS index_advantage,migs.last_user_seek,mid.statement AS 'Database.Schema.Table',mid.equality_columns,mid.inequality_columns,mid.included_columns,migs.unique_compiles,migs.user_seeks,migs.avg_total_user_cost,migs.avg_user_impact FROM sys.dm_db_missing_index_group_stats AS migs WITH (NOLOCK) INNER JOIN sys.dm_db_missing_index_groups AS mig WITH (NOLOCK) ON migs.group_handle = mig.index_group_handle INNER JOIN sys.dm_db_missing_index_details AS mid WITH (NOLOCK) ON mig.index_handle = mid.index_handle ORDER BY index_advantage DESC;
如果你想识别慢速查询sql Profiler是你的朋友,只需设置一个持续时间的过滤器,你就可以了.然后通过数据库引擎优化顾问(两者都附带sql Server)运行此查询.