gpt4 book ai didi

sql - 在现有表上将 newid() 更改为 newsequentialid()

转载 作者:行者123 更新时间:2023-12-01 03:00:33 25 4
gpt4 key购买 nike

目前,我们有许多在主键上使用 newid() 的表。这会导致大量碎片。所以我想更改列以使用 newsequentialid() 代替。

我想现有的数据将仍然非常碎片化,但新数据的碎片化程度会降低。这意味着在将 PK 索引从非集群更改为集群之前,我可能应该等待一段时间。

我的问题是,有没有人有这样做的经验?有什么我应该注意的地方吗?

最佳答案

您可能会考虑使用 comb guids ,而不是newsequentialid。

cast(
cast(NewID() as binary(10)) +
cast(GetDate() as binary(6))
as uniqueidentifier)

梳状 guid 是纯随机 guid 与当前日期时间的非随机性的组合,因此梳状 guid 的连续世代彼此靠近,并且通常按升序排列。与 newsequentialid 相比,Comb guid 具有多种优势,包括它们不是黑盒、可以在默认约束之外使用此公式以及可以在 SQL Server 之外使用此公式。

关于sql - 在现有表上将 newid() 更改为 newsequentialid(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/913545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com