<p>SQL Server提供了一个特殊的元数据函数 sys.dm_db_index_physical_stats,它有助于确定数据库中的页和区段有多满。然后可以使用该信息作出一些关于如何维护数据库的决策。</p>

sys.dm_db_index_physical_stats 是表值函数(table valued function)。简而言之,这意味着尽管它是个函数,也可像表一样使用它,这表示可在其上附加WHERE条件和其他类似的构造。

以下是一个要从Sales.SalesOrderDetail表中获取所有索引信息的例子。

DECLARE @db_id SMALLINT;
DECLARE @object_id INT;

SET @db_id = DB_ID(N'AdventureWorks'); SET @object_id = OBJECT_ID(N'AdventureWorks.Sales.SalesOrderDetail');

SELECT database_id, object_id, index_id, index_depth, avg_fragmentation_in_percent, page_count FROM sys.dm_db_index_physical_stats(@db_id, @object_id, NULL, NULL, NULL);