对于大型SQL Server 2008数据表上的主键,我可以选择使用guid或大小相同的字符串。
性能方面,当进行连接,选择等时,guid(16字节)与大约16个字符的字符串相比如何?SQL是否更好地处理guid,因为内部它们表示为数字?
答案 0 :(得分:2)
理想情况下,对你的问题的简短回答是不使用。
如果你可以使用int / bigint键(正如我在你对related question的回答中所建议的那样),你应该这样做。
除非您需要非破坏性地合并存储在多个SQL Server实例上的此数据集的副本的功能,否则使用GUID主键会在索引维护中增加相当大的开销。 This article对此问题进行了合理的讨论。
如果您生成的序列始终排序,则字符串PK应该具有较少的开销 - 即,总是在表的“结尾”添加新值。