当我们即将更改5TB数据库中的一些大表时,我发现自己需要一个可以在线执行的操作的列表,并且这些操作要求在运行时保持完全锁定。理想情况下,该列表还将包含有关哪些语句需要SCH-M锁在最后提交的信息。
虽然我在Microsoft时就了解了其中的大多数知识,但令我感到惊讶的是,由于它们是从SQL Server 2005一直发展到2014 CTP的,因此找不到公开的在线操作列表。
有人有这样的列表吗?如果没有,我可能决定创建它。
当我们即将更改5TB数据库中的一些大表时,我发现自己需要一个可以在线执行的操作的列表,并且这些操作要求在运行时保持完全锁定。理想情况下,该列表还将包含有关哪些语句需要SCH-M锁在最后提交的信息。
虽然我在Microsoft时就了解了其中的大多数知识,但令我感到惊讶的是,由于它们是从SQL Server 2005一直发展到2014 CTP的,因此找不到公开的在线操作列表。
有人有这样的列表吗?如果没有,我可能决定创建它。
Answers:
听起来像是一项事业。联机索引操作并非在每个版本的Microsoft SQL Server中都可用,希望这可以帮助您入门(采用表格形式):
SQL Server 2012:http: //msdn.microsoft.com/en-us/library/ms190981.aspx
SQL Server 2008R2:http : //msdn.microsoft.com/zh-CN/library/ms190981( v=sql.105) .aspx
SQL Server 2008:http://msdn.microsoft.com/zh-CN/library/ms190981(v = sql.100).aspx
SQL Server 2005:http://msdn.microsoft.com/zh-CN/library/ms190981(v = sql.90).aspx
SQL Server 2014本身并未引入新的联机操作,但确实改进了一些操作以提高可用性。在“ 新变化”部分:
分区切换和索引
现在可以重建分区表的各个分区。有关更多信息,请参见ALTER INDEX(Transact-SQL)。
和
管理在线操作的锁定优先级
现在,ONLINE = ON选项包含一个WAIT_AT_LOW_PRIORITY选项,该选项使您可以指定重建过程应等待必要的锁的时间。WAIT_AT_LOW_PRIORITY选项还允许您配置与该重建语句有关的阻塞进程的终止。有关更多信息,请参见ALTER TABLE(Transact-SQL)和ALTER INDEX(Transact-SQL)。sys.dm_tran_locks(Transact-SQL)和sys.dm_os_wait_stats(Transact-SQL)中提供了有关新型锁定状态的故障排除信息。