[英]SQL Server uniqueidentifier Ids
我有一个表,其主键列为nchar类型。
我将要替换该类型,我添加了一个新的uniqueidentifier
列作为id并将其设置为主键,然后将关系重置为其他表。
我这样做是因为我认为uniqueidentifier
比id字符串更好,因为该字符串id是由用户键入的。 它是一种名称属性,用作主键。
但是当我执行查询时,它似乎变慢了,我也不明白为什么。
通常,Uniqueidentifier是主键的错误选择。 这是一个随机无序字符串,并且PK是聚簇索引(默认情况下),这意味着如果您插入该id,引擎就会尝试将其插入该表的中间,然后引擎会拆分该表并进行大量处理。
尝试为您使用一个int身份PK,如果您需要历史记录,则原始strign列可以保留为非聚集唯一索引。
并阅读这篇(非常小的)文章。 SQL Server中央
PS:如果您尚未注册该论坛,则可以免费进行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.