对 SQL Server 中的所有表进行索引之前和之后的完整性能报告

Posted

技术标签:

【中文标题】对 SQL Server 中的所有表进行索引之前和之后的完整性能报告【英文标题】:A complete performance report before and after indexing on all tables in SQL Server 【发布时间】:2015-09-11 07:44:49 【问题描述】:

目前,我们有一个使用 SQL Server 2012 数据库的跟踪系统。数据库中的所有表都没有被索引。我相信如果对这些表应用索引,性能应该会提高。

为了让我的老板对这个想法印象深刻,我希望能够生成索引前后的性能报告。

我必须从我们的跟踪系统程序中选择一个或几个特定查询并将它们用作基准吗?或者我可以使用某种数据收集器来收集某些性能数据,比如 1 周,然后比较 BEFORE 索引和 AFTER 索引?

【问题讨论】:

"None of the tables in the database are indexed." 是不是意味着你所有的表都是HEAPs(没有聚集索引)? 希望他们有主键??? 在 SSMS 中右键单击数据库名称并打开报告上下文菜单。那里有很多值得尝试和探索的地方。有些人会告诉你哪些视图是最昂贵的。 【参考方案1】:

如果您在我建议尝试 Database Engine Tuning Advisror 之前没有做太多 SQL Server 优化 - 它会给您缺少索引提示。

至于基准查询 - 您可以使用 dm_exec_query_stats 管理视图识别 SQL Server 实例上最昂贵/最流行的查询。可以在this question中找到一个示例

【讨论】:

以上是关于对 SQL Server 中的所有表进行索引之前和之后的完整性能报告的主要内容,如果未能解决你的问题,请参考以下文章

SQL server中的物理排序和逻辑排序是怎么回事

Sql Server 主键 外键约束

SQL Server 使用全文索引进行页面搜索

SQL SERVER数据库 唯一索引 非唯一索引 聚集索引 非聚集索引 之间区别

DBCC DBREINDEX重建索引提高SQL Server性能

DBCC DBREINDEX重建索引提高SQL Server性能