用于在sql server中查找数据库瓶颈的工具

LaB*_*cca 6 sql-server profiling

我想要一个在测试我的应用程序时监视sql server的工具.applicatino当然会运行不同的查询.

从工具我想输出如下: - 此查询很慢,因为此字段上缺少索引

而这种信息.

但我希望有一种方法来突出关键数据,例如可能有100个索引丢失,但其中99个会提高0.05%的性能,而其中一个会给查询带来6000%的好处.所以突出热点也很重要.

还需要商业产品(具有全部特征 - 没有限制 - 试用).

F.B*_*ate 11

你并不需要一个工具.我个人使用以下查询来向我展示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;
Run Code Online (Sandbox Code Playgroud)

如果你想识别慢速查询SQL Profiler是你的朋友,只需设置一个持续时间的过滤器,你就可以了.然后通过数据库引擎优化顾问(两者都附带SQL Server)运行此查询.

  • 找到它:http://sqlblogcasts.com/blogs/sarveshsingh/archive/2010/08/23/index-usage.aspx (2认同)