我需要重建一些大的索引,并且我正在用ALTER INDEX语句的各种选项(D0、maxdop、online)在一个测试索引上进行一些测试,测试索引有4个级别,叶子级有800000页。我注意到,当我使用Online=on运行语句时,索引的中间页(第1级)比以前更加零碎(89%而不是3%)。
只有在设置MAXDOP=1时,中间页才会碎片化。使用选项SORT_IN_TEMBP=ON,ONLINE=OFF,第2级分段从0跳转到100。
以下是导致1级支离破碎性增加的说明:
ALTER INDEX pk_test ON dbo.test REBUILD WITH (sort_in_tempdb=off,online=on,maxdop=1)
ALTER INDEX pk_test ON dbo.test REBUILD WITH (sort_in_tempdb=off,online=on)
ALTER INDEX pk_test ON dbo.test REBUILD WITH (sort_in_tempdb=on,online=on)此语句导致第2级go上的碎片从0到100,但级别1保持不变:
ALTER INDEX pk_test ON dbo.test REBUILD WITH (sort_in_tempdb=on,online=off)中间页面上的碎片有什么值得担心的吗?是什么导致了碎片的增加?
发布于 2020-10-14 15:08:36
试试这个:
ALTER INDEX pk_test ON dbo.test REBUILD WITH (PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = ON,
ONLINE = ON,
ALLOW_ROW_LOCKS = OFF,
ALLOW_PAGE_LOCKS = OFF,
FILLFACTOR = 90,
OPTIMIZE_FOR_SEQUENTIAL_KEY = ON)这样,您将有一个90%的FILLFACTOR,您可能会避免使表碎片再次上升。
请记住,您的桌子大小将增加10%。
https://dba.stackexchange.com/questions/200336
复制相似问题