mssql sqlserver 使用sql脚本禁用索引方法分享


摘要:
下文讲述sqlserver中禁用索引和约束的方法分享,如下所示:
实验环境:sql server 2008 R2


在sqlserver数据库中,
禁用索引可以避免用户访问索引
禁用索引可以避免用户使用过期或不合适的索引

禁用聚集索引 用户将被禁止访问表(插入 更新 删除 查询四种操作都被禁止)数据(因为聚集索引中索引定义数据保留在元数据中)

禁用索引后,不能对索引进行相关维护操作,但可删除索引
禁用唯一索引时,将同时禁用primary key约束和unique约束及传入传出的外键约束。
索引被禁用后,重新生成索引后,需手动启动所有约束
聚集索引被禁用后,其它索引会被自动禁用
聚集索引被禁用后,dbcc checkdb将无法返回聚集索引所对应的表的相关信息
聚集索引被禁用后,相关列的统计信息也会失效

       ---禁用索引的方法举例:
    ---创建测试表
	create table [maomao365.com](keyId int )
	---创建测试索引
	create   index  ix_test on [maomao365.com] 
	 (keyId)
    ---生成相关测试数据
    insert into [maomao365.com](keyId)values
	(1),(2),(3),(5),(100),(200),(88),
	(99)
	 ---禁用索引
     alter index ix_test  on [maomao365.com]  disable 
     
	 --访问数据
	 select * from [maomao365.com] where keyId =1
     go
 
    

	 go
	 truncate table [maomao365.com] 
	 drop table [maomao365.com] 
  


重启被禁用索引的最好方法,删除索引,重新建立索引