COMB数据类型选取sql server主键

数据库 SQL Server
使用COMB数据类型选取sql server主键可以有效解决自动增长字段等三种选取sql server主键方式的不足问题,如果您还在犹豫选择哪种sql server主键方式的话,不妨看看下文。

自动增长字段、手动增长字段、UniqueIdentifier这三种sql server主键类型选取策略都有各自的不足,那么应该如何解决呢?使用COMB数据类型是一个很好的方法。

COMB 数据类型的基本设计思路是这样的:既然UniqueIdentifier数据因毫无规律可言造成索引效率低下,影响了系统的性能,那么我们能不能通过组合的方式,保留UniqueIdentifier的前10个字节,用后6个字节表示GUID生成的时间(DateTime),这样我们将时间信息与 UniqueIdentifier组合起来,在保留UniqueIdentifier的***性的同时增加了有序性,以此来提高索引效率。

也许有人会担心 UniqueIdentifier减少到10字节会造成数据出现重复,其实不用担心,后6字节的时间精度可以达到1/300秒,两个COMB类型数据完全相同的可能性是在这1/300秒内生成的两个GUID前10个字节完全相同,这几乎是不可能的!在SQL Server中用SQL命令将这一思路实现出来便是:

DECLARE @aGuid UNIQUEIDENTIFIERSET @aGuid =
CAST(CAST(NEWID() AS BINARY(10))
+ CAST(GETDATE() AS BINARY(6)) AS
UNIQUEIDENTIFIER)

经过测试,使用COMB做sql server主键比使用INT做sql server主键,在检索、插入、更新、删除等操作上仍然显慢,但比Unidentifier类型要快上一些。

 

 

【编辑推荐】

三种SQL索引

SQL隐性事务实例

SQL事务的操作语法

SQL中CONVERT函数的使用

SQL中NOT EXISTS的使用

责任编辑:段燃 来源: 互联网
相关推荐

2010-09-25 09:34:05

sql server主

2010-07-22 17:57:40

2010-09-06 16:25:46

SQL函数

2010-09-25 09:18:45

sql server主

2010-07-26 14:21:25

SQL Server数

2010-09-13 10:21:26

sql server2

2010-10-19 15:54:38

sql server创

2010-07-12 15:36:45

SQL Server

2010-07-20 15:54:02

SQL Server数

2010-06-28 14:30:08

SQL Server

2010-07-22 17:47:32

SQL Server数

2011-04-18 10:32:18

SQL Server数据类型设计优化

2011-05-11 10:39:01

SQL Serverdatetime数据类优化误区

2010-07-09 15:10:11

MS SQL Serv

2010-09-13 09:58:17

SQL Server2

2009-04-16 17:55:55

SQL Server 空间数据.NET

2010-07-23 14:18:47

SQL Server数

2011-08-25 16:31:36

SQL Servertimestamp

2010-06-30 11:31:55

SQL Server数

2010-06-28 11:22:14

MS SQL Serv
点赞
收藏

51CTO技术栈公众号