我现在的情况是需要提高大约75个用于报告的存储过程(由他人创建)的性能。 我解决问题的第一步是创建了大约6个非规范化表,这些表将用于大部分报告。 现在我面临着一个相当艰巨的任务,即确定我应该创建哪些索引以最大程度地提高这些存储过程的性能。
我很好奇是否有人有任何建议,可以找出哪些列应包含在索引中? 我考虑使用Profiler / DTA,或者可能像下面的查询一样设计某种查询来查找流行的列。
我很好奇是否有人有任何建议,可以找出哪些列应包含在索引中? 我考虑使用Profiler / DTA,或者可能像下面的查询一样设计某种查询来查找流行的列。
SELECT name, Count(so.name) as hits, so.xtype
from syscomments as sc
INNER JOIN sysobjects so ON sc.id=so.id
WHERE sc.text like '%ColumnNamme%'
AND xtype = 'P'
Group by name,so.xtype
ORDER BY hits desc
如果你有任何想法可以帮助我避免手动查找这75个过程,请告诉我。
另外,对于这个数据库来说,插入操作每天只执行一次,因此插入性能对我来说并不是一个很大的问题。