当前位置:  开发笔记 > 数据库 > 正文

提高集群索引GUID主键的性能

如何解决《提高集群索引GUID主键的性能》经验,为你挑选了3个好方法。

我有一个包含大量行(10K +)的表,主键是GUID.主键是群集的.此表的查询性能非常低.请提供建议,以提高效率.



1> dwc..:

GUID上的聚簇索引不是一个好的设计.GUID的本质是它是随机的,而聚簇索引通过密钥对记录进行物理排序.这两件事完全不一致.对于每个插入SQL,必须重新排序磁盘上的记录!从此索引中删除聚类!

使用群集的时间是指您对数据有"自然"顺序:插入时间,帐号等.对于时间字段,群集几乎是免费的.对于帐号,它可能是免费的或便宜的(当按顺序分配帐号时).

虽然可能存在围绕GUID问题的技术方法,但最好的想法是了解何时使用群集.


+1的强烈音调.这个问题没有太多的灰色区域.不要这样做.

2> bytedev..:

使用GUID作为主键没有问题.只需确保在实际将GUID设置为主键时,将其自动创建的索引设置为非群集类型.很多人忘记(或不知道)在SQL Server中执行此操作.

切勿在GUID上使用聚簇索引.这将导致磁盘上GUID周围的物理排序,这显然毫无意义(正如其他人已经指出的那样)



3> SQLMenace..:

您需要使用newsequentialid()代替,在这里看到一些简单的代码来显示newid和Newsequentialid之间的区别


我已经阅读了许多有关newsequentialid()的信息,但它似乎是一个SQL函数,如果从代码(C#)生成Guid,谁能告诉我该怎么办。
推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有