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

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

 2009-02-07 10:20:32 来源:WEB开发网   
核心提示: Figure 2Identifying the Most Reads and Writes结果显示了哪些数据库读写的逻辑页最多,顶部数据集按总读取次数排序,SQL Server: 揭开隐藏数据的面纱,优化应用程序性能(4),底部数据集按总写入次数排序,可以清楚地看到,我的脚本会检查 sys

Figure 2Identifying the Most Reads and Writes

结果显示了哪些数据库读写的逻辑页最多。顶部数据集按总读取次数排序,底部数据集按总写入次数排序。

可以清楚地看到,DatabaseName 在几个实例中设置为 NULL。此设置确定特定的和准备好的 SQL 语句。确定本机 SQL 的使用程度时,可使用此详细信息,它本身也可能引起许多不同的问题。(例如,这说明没有重用查询计划、没有重用代码,以及安全领域可能存在问题。)

tempdb 值较高可能表示过度使用临时表、过度重新编译或设备效率低。这些结果可以用来确定主要使用哪些数据库进行报告(许多数据选择),这与事务性数据库(许多更新)相对。每个数据库类型(报告数据库或事务性数据库)都有不同的索引需求。稍后我将更详细地探讨此问题。

数据库缺失索引

当 SQL Server 处理查询时,优化器会针对它用来尝试满足查询的索引保留一条记录。如果找不到这些索引,则 SQL Server 会创建缺失索引的记录。可以使用 sys.dm_db_missing_index_details DMV 来查看此信息。

使用图 3 所示的脚本,可以显示给定服务器上的哪些数据库缺失索引。发现这些缺失索引很重要,因为这些索引通常提供检索查询数据所需的最佳路径。这可以随之减少 I/O,从而提高整体性能。我的脚本会检查 sys.dm_db_missing_index_details,并按数据库将缺失索引数相加,从而轻松确定需进一步调查哪些数据库。

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

SELECT
  DatabaseName = DB_NAME(database_id)
  ,[Number Indexes Missing] = count(*)
FROM sys.dm_db_missing_index_details
GROUP BY DB_NAME(database_id)
ORDER BY 2 DESC;

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

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:SQL Server 揭开

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