首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >联机索引在中间级别重建更高的碎片

联机索引在中间级别重建更高的碎片
EN

Database Administration用户
提问于 2018-03-15 09:25:54
回答 1查看 551关注 0票数 6

我需要重建一些大的索引,并且我正在用ALTER INDEX语句的各种选项(D0、maxdop、online)在一个测试索引上进行一些测试,测试索引有4个级别,叶子级有800000页。我注意到,当我使用Online=on运行语句时,索引的中间页(第1级)比以前更加零碎(89%而不是3%)。

只有在设置MAXDOP=1时,中间页才会碎片化。使用选项SORT_IN_TEMBP=ON,ONLINE=OFF,第2级分段从0跳转到100。

以下是导致1级支离破碎性增加的说明:

代码语言:javascript
复制
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保持不变:

代码语言:javascript
复制
ALTER INDEX pk_test ON dbo.test REBUILD WITH (sort_in_tempdb=on,online=off)

中间页面上的碎片有什么值得担心的吗?是什么导致了碎片的增加?

EN

回答 1

Database Administration用户

发布于 2020-10-14 15:08:36

试试这个:

代码语言:javascript
复制
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%。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/200336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档