<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 @dbid = DBID(N'AdventureWorks'); SET @objectid = OBJECTID(N'AdventureWorks.Sales.SalesOrderDetail');

SELECT databaseid, objectid, indexid, indexdepth, avgfragmentationinpercent, pagecount FROM sys.dmdbindexphysicalstats(@dbid, @objectid, NULL, NULL, NULL);