【发布时间】:2011-01-04 20:10:51
【问题描述】:
我必须改进用于报告的大约 75 个存储过程(由其他人创建)的性能。我的解决方案的第一部分是创建大约 6 个非规范化表,这些表将用于大部分报告。现在我已经创建了表,我有一项艰巨的任务是确定我应该创建哪些索引以最好地提高这些存储过程的性能。
我很想知道是否有人对查找哪些列可以包含在索引中提出任何建议?我已经考虑过使用 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 个 proc,请告诉我。
此外,插入每天只在此数据库上执行一次,因此插入性能对我来说不是一个大问题。
【问题讨论】:
标签: sql-server sql-server-2005 indexing