WEB开发网
开发学院数据库MSSQL Server SQL Server: 揭开隐藏数据的面纱,优化应用程序性... 阅读

SQL Server: 揭开隐藏数据的面纱,优化应用程序性能

 2009-02-07 10:20:32 来源:WEB开发网   
核心提示: Figure 6Identifying the Most Costly Indexes结果显示了维护性最高的索引以及有关数据库/表的详细信息,“维护开销”列的计算方式是将 user_updates 和 system_updates 列相加,SQL Server: 揭

Figure 6Identifying the Most Costly Indexes

结果显示了维护性最高的索引以及有关数据库/表的详细信息。“维护开销”列的计算方式是将 user_updates 和 system_updates 列相加。索引的有用性(在“检索使用率”列中显示)的计算方式是将各 user_* 列相加。在决定是否要删除索引时,考虑索引的有用性非常重要。

如果涉及大量的数据修改,这些结果可帮您确定在应用更新前应删除的索引。然后,可在应用所有更新后重新应用这些索引。

常用索引

循环遍历所有数据库

sys.indexes DMV 是一个特定于数据库的视图。因此,联接到 sys.indexes 的查询只报告针对当前数据库的结果。但是,您可以使用系统存储过程 sp_MSForEachDB 遍历服务器上的所有数据库,然后提供服务器范围的结果。下面是我对这些情况所采取的做法。

创建一个临时表,其所需的结构与代码主体类似。我将一个不存在的记录(object_id 为 -999)放入其中,以便可以创建临时表结构。

代码的主体执行,即遍历服务器上的所有数据库。请注意,从每个数据库检索到的记录数量(使用 TOP 语句)应与要显示的记录数量相同。否则,这些结果可能并不真正代表服务器上所有数据库的最前 n 个记录。

这些记录将提取自临时表,并按我关注的列(在本例中为 user_updates 列)排序。

您可以使用 DMV 确定哪些索引最常使用,这些是到基础数据的最常用路径。如果这些索引能够实现自身改进或优化,则可以极大地提高整体性能。

sys.dm_db_index_usage_stats DMV 包含了一些详细信息,它们有关通过搜寻、扫描和查找来检索数据方面对索引的使用频率。此 DMV 已联接到 sys.indexes DMV,后者包含创建索引时所使用的详细信息。“使用率”列的计算方法是将所有 user_* 字段相加。使用图 7 所示的脚本即可实现此目的。此查询结果显示索引已被使用的次数,并按“使用率”排序。

上一页  4 5 6 7 8 9 10  下一页

Tags:SQL Server 揭开

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接