一尘不染

ALTER COLUMN的执行时间

sql

有一张有60列和200行的表。将BIT列从更改NULLNOT NULL,现在具有3小时以上的运行执行时间。为什么要花这么长时间?

这是我正在执行的查询:

ALTER TABLE tbl
ALTER COLUMN col BIT NOT NULL

除了创建新列,使用旧列中的值对其进行更新,然后删除旧列并重命名新列之外,还有没有更快的方法呢?

这是在MS SQL Server 2005上。


阅读 195

收藏
2021-03-08

共1个答案

一尘不染

ALTER是否被其他语句持有的元数据共享锁阻止?任何ALTER都需要元数据互斥锁,因此将被使用该表的任何其他语句阻塞。

检查“活动监视器”,或查看sys.dm_exec_requests,看看谁在阻止您的ALTER INDEX。

2021-03-08