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

时间:2010-09-02 09:01:51

标签: sql-server profiling

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

从工具中我希望输出如下: - 此查询速度很慢,因为此字段缺少索引

和这种信息。

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

还需要商业产品(具有完整功能 - 无限制 - 试用)。

3 个答案:

答案 0 :(得分: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;

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

答案 1 :(得分:2)

  • SQL Server Profiler
  • SQL数据库顾问

答案 2 :(得分:0)

看看SQL Copilot。有一个免费版本,完整版本便宜(约50美元) 请注意,虽然我使用它并发现它有用以提出一些问题并且作为学习工具,我仍然在寻找其他工具。
对于这个棘手的主题(un)来说,有很多东西需要学习。