代码之家  ›  专栏  ›  技术社区  ›  UnDiUdin

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

  •  6
  • UnDiUdin  · 技术社区  · 14 年前

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

    还有这种信息。

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

    此外,一个商业产品(与全功能-没有限制-试用)是理想的。

    3 回复  |  直到 14 年前
        1
  •  11
  •   PiotrWolkowski issam chouchane    9 年前

    你不需要工具。我个人使用下面的查询来显示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是您的朋友,只需在duration上设置一个过滤器,就可以了。然后通过数据库引擎优化顾问运行此查询(这两个工具都随SQL Server提供)。

        2
  •  2
  •   leppie    14 年前
    • 事件探查器
    • SQL数据库顾问
        3
  •  0
  •   iDevlop    11 年前

    看看SQL副驾驶。有一个免费的版本,完整的版本很便宜(大约50美元)。
    请注意,虽然我使用它,并发现它是有用的,以提出一些问题,并作为一个学习工具,我仍然在寻找其他工具以及。
    在这个棘手的问题上有很多东西要学。