【Sqlserver】如何获得SQL Server索引使用情况
原文出自: http://www.mssqltips.com/sqlservertip/1239/how-to-get-index-usage-information-in-sql-server/ ?问题: 数据库有两大存储需要:数据页和索引页。在你的表中理解和查看实际的数据,是相当简单的。通过运行一些查询示例来了解哪些列被使用,以及什么类型的数据实际上是被存储。一方面,很难知道索引实际上是如何被使用和怎么使用的。所以你应该如何更好地理解索引的使用及正在发生什么操作(inserts,updates,deletes,selects)? ?解决方案: 在SQLServer中,许多新的DMVs被引入,供你窥探一些过往版本中不能或很难看到的数据。其中一个新函数和一个新视图是提供索引使用情况: Sys.dm_db_index_operational_stats和sys.dm_db_index_usage_stats Sys.dm_db_index_operational_stats: 该函数提供关于insert/update/delete在特定索引上引起的信息。另外,这个视图同样提供关于锁、闩锁和访问方法的信息。它会返回很多列,但是重点关注下面几列:
以下例子的查询提供一些关于增、删、改操作的有用信息的关键列: SELECT?OBJECT_NAME(A.[OBJECT_ID])?AS?[OBJECT?NAME], ? 以下是输出情况,从这个函数中,我们可以得知有多少insert/update/delete操作发生在每个表和索引上。
? Sys.dm_db_index_usage_stats: 这个视图提供关于你的索引的访问方法总览情况,下面的列在检查问题是比较有用:
? SELECT???OBJECT_NAME(S.[OBJECT_ID])?AS?[OBJECT?NAME], ? 以下是查询结果,从这个结果中可以得知有多少查找、扫描、书签查找和全部修改操作。 注意:当SQLServer重启时这些值会清空,另外,sys.dm_db_index_operational_stats返回的值仅仅是只对缓存在堆(heap)或者索引的元数据对象有效。(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 一个sqlserver2000中,通过ftp自动远程备份和恢复数据库的例
- SQLServer 事务复制分发错误 The process could not connec
- Sql Server之旅——终点站 nolock引发的三级事件的一些思考
- SQL Server按位操作像C#枚举标志
- 查询sqlserver 索引的使用情况
- 索引初探(三)
- sql – 如何使用Oracle中的Select Exists?
- SqlServer基础系列――row_number() rank() dense_rank()Sq
- sql-server – 执行存储过程作为另一个用户预留
- SqlServer2005/2008备份模式与恢复模式 2备份模式