为什么在我的测试案例中,顺序的GUID密钥比顺序的INT密钥执行得更快?
询问后这个问题比较顺序和非顺序的GUID,我试图表与顺序初始化的GUID主键比较上1 INSERT性能)newsequentialid(),和2)的表与INT主键与顺序初始化identity(1,1)。我希望后者是最快的,因为整数的宽度较小,并且生成顺序整数比顺序GUID似乎也更简单。但是令我惊讶的是,带有整数键的表上的INSERT显着慢于顺序GUID表。 这显示了测试运行的平均时间使用量(毫秒): NEWSEQUENTIALID() 1977 IDENTITY() 2223 谁能解释一下? 使用了以下实验: SET NOCOUNT ON CREATE TABLE TestGuid2 (Id UNIQUEIDENTIFIER NOT NULL DEFAULT NEWSEQUENTIALID() PRIMARY KEY, SomeDate DATETIME, batchNumber BIGINT, FILLER CHAR(100)) CREATE TABLE TestInt (Id Int NOT NULL identity(1,1) PRIMARY KEY, SomeDate DATETIME, batchNumber BIGINT, FILLER CHAR(100)) DECLARE @BatchCounter INT = 1 …