sql-server - 关于识别需要创建哪些索引的任何建议?

标签 sql-server sql-server-2005 indexing

我必须提高用于报告的大约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个过程。

另外,每天仅在此数据库上执行一次插入,因此对我而言,插入性能不是什么大问题。

最佳答案

您可以在SSMS中使用SQL Server事件探查器来查看表的内容和方式,然后使用事件探查器中的数据库调整工具至少使您从正确的路径开始。我知道大多数DBA可能都会推荐我这么做,但是对于像我本人这样的非DBA类型,这至少为我们提供了一个起点。

关于sql-server - 关于识别需要创建哪些索引的任何建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2060283/

相关文章:

php - Laravel 连接到 SQL Server 2008 命名实例

sql-server - 调用 SQL Server 代理作业

sql-server - 如何在表格面板中动态显示数据

sql - 按范围分组 SQL Server

sql - 在 where 子句中切换大小写/If

python - 将 pandas DataFrame DatetimeIndex 延长 25 个工作日

c++ - 在 C++ 中使用另一个变量来限制数组索引

sql - 如何将日期时间转换为仅日期(时间设置为 00 :00:00. 000)

sql-server - SQL Server 查询查找数据库中所有用户的所有权限/访问权限

r - 一种有效的方法来对带有R中的NA值的行进行子集