我有一个棕色字段SQL Server 2005数据库,它使用标准的,未排序的GUID作为主键值的大部分,也使用聚簇索引(这对性能有害)。

我应该如何将这些更改为顺序GUID?其中一个挑战是在更改每个主键时替换所有外键值。

您知道有哪些工具或脚本可以执行此类转换吗?

有帮助吗?

解决方案

请记住,您只能将newsequentialid()函数用作默认值

所以创建一个包含2列的新表。将原始表中的密钥插入此表中(将另一列留下,它将自行填充)

加入原始表并使用newsequantialid更新PK,如果你有级联更新,FK应该自己更新

其他提示

你怎么知道它对性能有害?

GUID的优点是您不必担心同时创建记录的多个进程。它可以大大简化您的代码,具体取决于程序。

当Guid是PK时,SequentialGuids最适合表现。这就是他们存在的原因。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top