gpt4 book ai didi

sql-server-2008-express - 每天 25k 次插入,99% 的聚集 GUID 索引碎片化

转载 作者:行者123 更新时间:2023-12-05 00:35:50 25 4
gpt4 key购买 nike

我有一个表,它有一个主键作为聚集的 GUID 字段;我正在使用 NEWSEQUENTIALID() 生成 GUID而不是 NEWID .不幸的是,由于该表每天会看到大约 25k-100k 次插入,因此在几个小时内(默认:聚集)主键索引变得 99% 碎片化。

我原来用的NEWID而不是生成顺序 ID,但即使我重新创建表并使用 NEWSEQUENTIALID 重新插入所有行(并将其指定为主键列的默认值),我仍然在几个小时内看到 99% 的碎片。 (该表目前约有 130 万条记录。

我曾想过用整数主键替换 GUID,但我不确定这是否可行;另外,由于我们的团队使用 GUID 作为主键而不是整数,我认为我不会有足够的支持来做到这一点。

我有什么选择来保持这个东西的碎片整理?我使用的是 SQL Server Express,因此我无权访问 SQL 代理(因此无法定期运行维护计划来重建索引)。

我也很可能在 future 的某个时候拆分这个数据库/表(因为数据量),所以我可能需要 GUID 来合并表。

另外:我不能使用索引 View ,因为我有一个内部选择,这对我来说很难展开到连接中。

最佳答案

以我自己的亲身经历,折腾出来GUID s 作为您的集群键可以对您的系统产生重大的积极影响 - 特别是在索引碎片方面!

我的新 INT IDENTITY集群索引几乎没有任何碎片 - 即使经过数月的密集日常生产使用。绝对值得!!

使用 Guid在 SQL Server 中作为集群键的数据类型是 糟糕透顶的选择 - 无论你怎么看...

请参阅 Kimberly Tripp(索引女王)关于该主题的一些博客文章:

  • GUIDs as primary keys and/or clustering keys
  • Disk space is cheap - THAT's NOT THE POINT!

  • 以及她在博客上发表的关于集群键主题的任何其他内容......

    关于sql-server-2008-express - 每天 25k 次插入,99% 的聚集 GUID 索引碎片化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8895818/

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