问题:我正在运行此查询,该查询将table_A
中的约3,300,000,000行插入到table_B
中:
declare @i bigint, @j bigint, @page int
set @i = 1
set @j = 110000000
set @page = 0
while @page < 33
begin
insert into table_B
select column1, column2
from table_A
where id between (@i + @j * @page) and (@j + @j * @page)
set @page = @page + 1
end
查询已经运行了大约3天17个小时,并且仍在运行。检查sys.sysprocess
后,我发现此查询(spid = 108)被另一个spid = 21阻止。我尝试使用dbcc inputbuffer (21)
检查spid = 21在做什么,但我什么都找不到关于这个spid = 21。
查询sys.sysprocesses:
select *
from sys.sysprocesses
where blocked != 0
正在运行dbcc输入缓冲区(21):
任何帮助将不胜感激。