gpt4 book ai didi

database - 在 sql server 2008 中更新聚集列的成本是多少

转载 作者:搜寻专家 更新时间:2023-10-30 22:19:05 24 4
gpt4 key购买 nike

我是 SQL Server 开发的新手,目前正在读一本书,我在这本书中读到,如果我更新索引列,我将影响该列中的所有记录,因为索引就像一本书的索引。

在我的工作中,SSN(社会安全号码)是主键表,我被要求在我们的应用程序上启用 de SSN 修改。

所以我想知道....修改聚集索引列的成本是多少?

提前致谢!

最佳答案

成本相当高 - 好的集群 key 应该是静态的另一个原因,例如永不改变。

聚簇索引列实际上也存在于每个非聚簇索引中 - 所以如果您有一个包含 10 个非聚簇索引的表,更新聚簇键中使用的列的值table 也需要出去更新所有 10 个非聚集索引。

阅读 Kimberly Tripp 的博文 Ever-increasing clustering key - the Clustered Index Debate..........again!了解什么构成表上的良好聚簇键

简单总结一下——一个好的聚类键应该是:

  • narrow - 4 个字节是完美的,8 个字节是可以容忍的,任何超出此范围的都会降低性能....

  • unique - 聚簇键是数据的最终查找 - 如果该列(或列集)不是唯一的,SQL Server 将添加一个 4 字节的唯一标识符您的数据 - 不推荐....

  • static - 出于性能原因,集群列的值永远不应更改

  • 不断增加 - 避免索引碎片

因此,

INT IDENTITYBIGINT IDENTITY 是您的最佳选择 - 如果可以,请使用其中之一。避免大型复合索引,避免大型可变长度字符串列,避免 GUID(碎片过多,因此不利于性能)

关于database - 在 sql server 2008 中更新聚集列的成本是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6767093/

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