SQL Server - 检测非索引列,但在WHERE子句中使用

问题描述:

如何检测包含在WHERE子句中但用于索引的列?SQL Server - 检测非索引列,但在WHERE子句中使用

小背景:

直到时间的表已经记录的极少数事情会好起来的,一旦它开始有上百万条记录,然后指数应为列创建这是在WHERE子句中使用的存储过程,内嵌查询等,

由于我们有数百个存储过程和查询,经常被开发人员更改我想有一个自动的方式来标识在WHERE子句中使用的列,但不是索引是创建。如何在SQL Server 2008中做到这一点?

使用“缺少索引” DMV的东西被发现,可以添加什么?

  • Example(这是加权让您拥有成本的想法太)
  • MSDN

编辑:我有资格......这可以让你基于成本/使用考虑索引/效益。 索引只能在星期日的04:00使用,所以从成本的角度来看它可能不值得。

你应该首先确定你的昂贵查询:How Can I Log and Find the Most Expensive Queries?