SQL Server以Online模式创建索引-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

SQL Server以Online模式创建索引

简介:

英文原文:   
http://dba.fyicenter.com/faq/sql_server/CREATE_INDEX_Impact_on_Other_User_Sessions.html

 

如果你正在一个存在数据的表上创建新的索引,所有存在的行将会被索引作为CREATE INDEX语句的一部分。如果表非常大,索引过程将会花费些时间。索引过程对其他用户会话的影响,基于SQL Server

是使用Offline模式还是Online模式。

 

默认,SQL Server以Offline模式执行索引操作,索引操作期间有表锁请求。一个离线索引操作,创建、重建、或删除一个聚集索引,或者重建或删除一个非聚集索引,需要一个表上的架构修改(Sch-M

)锁。这阻止了所有用户在操作期间访问相应表。对一个离线索引操作,创建一个非聚集索引,在表上申请一个共享(S)锁。他阻止了对相关表的更新但是允许读操作,例如SELECT语句。

 

SQL Server Enterprise 版支持在线模式索引操作,其他的用户会话就不会被影响。

 

然而,SQL Server Express 版不支持在线模式。如果你尝试,你会获得以下错误:   

1
2
3
CREATE INDEX fyi_links_url ON fyi_links_indexed (url)    
   WITH (ONLINE = ON);    
GO
1
2
Online index operations can only be performed in Enterprise    
edition of SQL Server.























本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1737335 ,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章
最新文章
相关文章