cbp*_*cbp 5 sql newid clustered-index newsequentialid
目前,我们有许多表在主键上使用 newid() 。这导致了大量的碎片。所以我想更改该列以使用 newsequentialid() 代替。
我认为现有数据仍将保持相当分散,但新数据的分散程度将减少。这意味着我也许应该等待一段时间,然后再将 PK 索引从非聚集更改为聚集。
我的问题是,有人有这样做的经验吗?有什么是我忽略的、应该注意的吗?
如果您切换到顺序引导并同时重新组织一次索引,您将消除碎片。我不明白为什么你想等到碎片页面链接在连续范围内重新排列。
话虽这么说,您是否进行了任何测量来表明碎片实际上正在影响您的系统?仅查看索引并看到“碎片 75%”并不意味着访问时间受到影响。还有更多因素在起作用(缓冲池页面预期寿命、读取与写入的速率、顺序操作的局部性、操作的并发性等)。虽然从向导切换到顺序向导通常是安全的,但您仍然可能会引入问题。例如,您可以看到插入密集型 OLTP 系统的页锁存争用,因为它会创建插入累积的热点页。
| 归档时间: |
|
| 查看次数: |
4437 次 |
| 最近记录: |