Запрос заблокирован spid № 21 (SQL Server 2014) - PullRequest
0 голосов
/ 14 января 2019

Проблема : я выполняю этот запрос, который вставляет около 3 300 000 000 строк из table_A в 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.sys:

select *  
from sys.sysprocesses 
where blocked != 0

enter image description here

Запуск входного буфера dbcc (21):

enter image description here

Любая помощь будет оценена.

...