已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。
2天前关闭。
Improve this question
为了控制SQL Server表中的重复行,哪种方法在高负载下的插入时间性能更好?
1.在表中应该具有唯一值的列上创建主键约束(列的类型是varchar(100)
,可能的值类似于g_12546987456_13-9
。这意味着复合主键,没有特定的字符顺序)
1.创建一个自动递增的数字主键,并在字符串列(g_12546987456_13-9
)上设置具有唯一性约束的非聚集索引
1条答案
按热度按时间uxhixvfz1#
有一件事你必须警惕,当创建这些字母数字主键,你必须确保你的字母数字值是递增的。
你提到的随机值的第一个选项肯定会对性能产生巨大的影响。由于随机主键,它最终会在现有数据页上插入新行,从而向下推记录并最终导致页拆分-对SQL Server性能非常不利。(GUID不是主键的好候选者,MS不得不引入顺序GUID的主要原因之一)。
我建议使用SQL Server序列对象来自动递增值,并使用您想要的字母表,但仍要确保新值是连续的和递增的。