SQL Server 关于聚集索引的操作

来源:互联网 发布:淘宝店铺英文名字 编辑:程序博客网 时间:2024/05/11 20:24

一、简介

1.SQL Server默认为主键创建聚集索引,这样做有一定的好处,但是大部分都是一种浪费。因为一个表中只能创建一个聚集索引,而一般的表设计中主键很少会应用于查询,所以合理的创建主键就显得格外重要。我们可以将主键聚集索引删除,在其他更合理的字段上创建聚集索引;

2.创建于主键上的聚集索引是不可以通过Drop等语句来删除的,要想删除位于主键上的聚集索引,我们可以通过先删除主键约束,这样将会自动删除主键上的聚集索引,然后在其他字段上创建聚集索引,最后在创建主键时将其修改为非聚集索引;

二、删除主键上的聚集索引,在其他字段上创建聚集索引

1.查看某个表上的索引

SELECT * FROM sys.indexes WHERE object_id=object_id('RealTimeStore')
2.查看某个表上的主键

SELECT * FROM INFORMATION_SCHEMA.Key_Column_Usage WHERE TABLE_NAME='IS_RealTimeStore'

查看数据库中的所有主键

SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE CONSTRAINT_NAME LIKE 'PK%'

3.删除主键(删除主键就等于删除了主键上的聚集索引)

ALTER TABLE IS_RealTimeStore DROP CONSTRAINT PK_RealTimeStore

4.在其他字段上创建聚集索引

CREATE CLUSTERED INDEX ModID_Index ON RealTimeStore(ModID)

5.重新创建主键并创建非聚集索引

ALTER TABLE IS_RealTimeStore ADD CONSTRAINT PK_IS_RealT PRIMARY KEY NONCLUSTERED(ID)

0 0
原创粉丝点击