如何通过主键或带唯一性约束的非聚集索引提高SQL Server表插入性能?[已关闭]

lmvvr0a8  于 2023-01-20  发布在  SQL Server
关注(0)|答案(1)|浏览(129)

已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

2天前关闭。
Improve this question
为了控制SQL Server表中的重复行,哪种方法在高负载下的插入时间性能更好?
1.在表中应该具有唯一值的列上创建主键约束(列的类型是varchar(100),可能的值类似于g_12546987456_13-9。这意味着复合主键,没有特定的字符顺序)
1.创建一个自动递增的数字主键,并在字符串列(g_12546987456_13-9)上设置具有唯一性约束的非聚集索引

uxhixvfz

uxhixvfz1#

有一件事你必须警惕,当创建这些字母数字主键,你必须确保你的字母数字值是递增的。
你提到的随机值的第一个选项肯定会对性能产生巨大的影响。由于随机主键,它最终会在现有数据页上插入新行,从而向下推记录并最终导致页拆分-对SQL Server性能非常不利。(GUID不是主键的好候选者,MS不得不引入顺序GUID的主要原因之一)。
我建议使用SQL Server序列对象来自动递增值,并使用您想要的字母表,但仍要确保新值是连续的和递增的。

相关问题