SQLサーバーを再起動しないでください。回復が行われるため、これは苦痛を長引かせるだけであり、削除を含め、完了していないトランザクションをロールバックまたはやり直します。
削除を実行しているセッションを強制終了すると、ロールバックが発生し、完了までに長い時間がかかります。
次のクエリを見て、操作の状態を確認します。
SELECT des.session_id
, des.host_name
, des.login_name
, der.command
, der.estimated_completion_time
, der.blocking_session_id
, der.last_wait_type
, der.percent_complete
, der.start_time
, der.status
, der.wait_resource
, der.wait_type
, der.wait_time
FROM sys.dm_exec_sessions des
INNER JOIN sys.dm_exec_requests der ON des.session_id = der.session_id
WHERE des.session_id <> @@SPID
AND des.is_user_process = 1
ORDER BY des.session_id;
の percent_complete
カラム、それに依拠するものは、このようなestimated_completion_time
、唯一の次の操作のために取り込まれます。
ALTER INDEX REORGANIZE
AUTO_SHRINK option with ALTER DATABASE
BACKUP DATABASE
DBCC CHECKDB
DBCC CHECKFILEGROUP
DBCC CHECKTABLE
DBCC INDEXDEFRAG
DBCC SHRINKDATABASE
DBCC SHRINKFILE
RECOVERY
RESTORE DATABASE
ROLLBACK
TDE ENCRYPTION
そのため、削除ステートメントを既にキャンセルしてロールバックしている場合、またはSQL Serverを既に再起動していて復旧中である場合にのみ、その列が意味を持つことがわかります。
blocking_session_id
列に数値が含まれている場合は、他のセッションが削除操作をブロックしていることを示しています。そのセッションが開始してから削除操作をブロックしている場合は、ロールバックを実行する必要なく操作をキャンセルできる場合があります。