sql-server - 在 SQL Server 中,我应该为标识列创建索引,还是自动创建?

标签 sql-server indexing identity

我相信当我创建 identity 列时,它会自动索引,但我不能 100% 确定。

我应该为 identity 列创建索引,还是自动创建索引?

最佳答案

create table test (Id int identity)
go
sp_help test
<小时/>
The object 'test' does not have any indexes, or you do not have permissions.

No constraints are defined on object 'test', or you do not have permissions.

作为一般做法,您会在身份列上创建唯一索引,这可以加快查找速度。

通常您希望您的身份列也成为“聚集索引”(Id int Identity Primary Key 是快捷表示法),这意味着表按照您的身份在磁盘上的排列顺序科列群岛这针对插入进行了优化,因为插入的页面往往位于内存中。在某些情况下,当您对表中的其他数据进行频繁的范围查找时,您可以考虑对其他列进行聚簇,因为 SQL Server 只允许每个表一个聚簇索引。

关于sql-server - 在 SQL Server 中,我应该为标识列创建索引,还是自动创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4365380/

相关文章:

c# - 当 DatabaseGenerated.Identity 已经与 Entity Framework 一起使用时自动增加一个数字

sql - Firebird - PGSQL 中的串行字段?

c# - SQL 网络接口(interface),错误 : 26 using Windows Azure

sql-server - 查询空间索引没有响应

sql-server - sql server 使用命名空间解析 xml

python - 尝试访问列表元素时出现索引错误

sql-server - 尽管有有效的统计数据,但查询计划估计的行数低得​​离谱

c# - 从 RDP session 中的 SQL CLR 内部获取本地计算机名称或 IP 地址

PostgreSQL 在 Group By + In Statement 查询中返回额外的排序

ruby-on-rails - 如何测试 (ActiveRecord) 对象是否相等