我在一张空桌子上有碎片索引!

Sky*_*Sky 5 index sql-server fragmentation

我在我的数据库上运行以下查询来识别碎片索引。然而,当我看到索引属于高度碎片化索引中的一些空表时,我感到很惊讶!怎么可能?我假设如果表中没有数据,索引应该是空白的并且不能被碎片化。

    SELECT 
    a.index_id, 
    name, 
    avg_fragmentation_in_percent
FROM 
    sys.dm_db_index_physical_stats(NULL, NULL, NULL, NULL, N'Limited') AS a
    JOIN sys.indexes AS b 
        ON a.object_id = b.object_id 
        AND a.index_id = b.index_id
Run Code Online (Sandbox Code Playgroud)

有人可以给我一个解释吗?

先感谢您。

纳兹拉

gbn*_*gbn 3

碎片值对于小表来说没有意义。
空的(或清空的)桌子很小。

小是由分配给它多少个8k数据页决定的。

例如,请参阅这个问题:为什么在我重建并重新索引所有内容后我的数据库仍然碎片化?