【问题标题】:SQL DMV linking Index Usage to Stored Procedure UsageSQL DMV 将索引使用链接到存储过程使用
【发布时间】:2016-12-21 15:03:02
【问题描述】:

我正在审核和清理一些 SQL 2008 R2 Box。

我正在做很多工作:

sys.dm_db_index_usage_stats (Index usage)

sys.dm_exec_procedure_stats (Procedure usage)

这些 DMV 提供了很多良好的性能信息。

我需要一种将结果链接在一起的方法。即如何确定哪些存储过程正在使用哪些索引?

我一直在分解计划缓存中的 XML,但是效率很低,有没有人有更好的解决方案?

【问题讨论】:

  • 这是我在删除存储过程之前使用特定索引查找存储过程的方法。 sqlskills.com/blogs/jonathan/…
  • 嗨,我已经看过这个了。我的问题是我在较小的盒子上有超过 80,000 个索引,所以我必须为每个索引切碎每个计划缓存。我试图想出一些更高效的东西,我可以每天运行,使我能够将结果保存到永久表并监控更改。我已经将每个计划分解一次并获得了它使用的索引列表,但我希望有一些鲜为人知的 dmv 或 XML 技巧来产生最小的开销。
  • 80,000 个索引?用 Buddy the Elf 的话来说,这令人震惊。
  • 为什么需要哪些程序使用特定索引的信息?要知道哪个语句使用索引是不够的(使用语句是获取哪些过程使用这些语句的信息的捷径)?
  • Deadsheep39:我继承了一个庞大的内部解决方案,该解决方案被大量且不恰当地编入索引。我需要弄清楚哪些存储过程产生的开销最大,即索引扫描和更新,然后将其反馈给相应的开发团队。 (我需要确定系统的问题部分并将所有权归还给正确的团队。)

标签: sql-server tsql


【解决方案1】:

使用system reports

Management studio 中右键单击服务器或特定数据库。选择报告,然后选择标准报告并选择对象执行统计数据

我确信您能够捕获查询(如果有必要)with SQL Server Profiler

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    相关资源
    最近更新 更多