哪个是较小的存储:身份主键还是序列主键?

Pet*_*mes 0 sql sql-server sql-server-2012

哪个是较小的存储:身份主键还是序列主键?我所说的序列的一个例子如下.

CREATE SEQUENCE TestSeq
 AS INTEGER
 START WITH 1
 INCREMENT BY 1;

CREATE TABLE Tab1
(tab1_ID INTEGER DEFAULT NEXT VALUE FOR TestSeq PRIMARY KEY,
 other_stuff VARCHAR(15) NOT NULL);
Run Code Online (Sandbox Code Playgroud)

奖励:任何推荐的序列链接也会受到欢迎.我试图找出那里的地方与身份.

Chr*_*ain 6

就数据大小而言,它们实际上是相同的(假设类型相同).

不同之处在于序列与表分离,其中的数字可用于唯一标识多个表中的行(偶尔有用)或用于在过程中生成唯一编号,而无需在表中插入行所有.

  • 存储序列,是的.请参阅https://msdn.microsoft.com/en-us/library/ff878091.aspx - "例如,创建一个新序列,其起始值为1,缓存大小为15.当需要第一个值时,值1到15从内存中可用.最后一个缓存的值(15)被写入磁盘上的系统表.当使用所有15个数字时,下一个请求(对于数字16)将导致分配缓存新的最后一个缓存值(30)将被写入系统表." (2认同)