【发布时间】:2015-02-06 06:00:34
【问题描述】:
我目前正在监督一个到处都有(顺序)GUID 的数据库。该数据库的规模将在短期内显着增长。将整个 shebang 转换为使用 bigint 不会有太多工作。我在想,值得吗?
聚集索引会随着大小的增长而分崩离析,SQL 页面大小会增加,如果我继续使用顺序 GUID 的路径,我预计会遇到各种各样的麻烦。碎片化页面,可怕的索引..(尤其是在服务器重新启动的情况下,这会重置顺序 GUID 创建)
是否存在我可以出于某种原因保留 GUID 并使用 bigint 进行索引的世界?所有 SQL 语句都可以很容易地转换为对 SELECT 子句使用 bigint 列。
我最好的方法是什么?有什么理由保留 GUID 吗?还是我应该将所有内容都转换为 bigint 并从那里运行?
【问题讨论】:
-
这些 guid 是如何生成的?在插入或以其他方式?是否存在依赖特定值唯一性或随机性的一方?
-
@abatishchev guid 是使用 newsequentialid() 生成的。不依赖随机性或唯一性(在合并数据库的情况下)
标签: sql asp.net sql-server database