У меня есть некоторые процессы, которые требуют много времени для завершения.Как остановить процесс в MS SQL Server?
У меня был запрос q, который занял 30 часов «Я забыл об этом», поэтому я убил его, используя «kill id», но он пытался откат уже более 30 часов.
Может кто-нибудь, пожалуйста, скажите мне, как я могу заставить это остановиться?
, когда я запускаю этот запрос
select
p.spid
, right(convert(varchar,
dateadd(ms, datediff(ms, P.last_batch, getdate()), '1900-01-01'),
121), 12) as 'batch_duration'
, P.program_name
from master.dbo.sysprocesses P
where P.spid > 50
and P.status not in ('background', 'sleeping')
and P.cmd not in ('AWAITING COMMAND'
,'MIRROR HANDLER'
,'LAZY WRITER'
,'CHECKPOINT SLEEP'
,'RA MANAGER')
order by batch_duration desc
Я получаю следующие результаты
61 23:40:48.893 Microsoft SQL Server Management Studio - Query
51 23:33:03.410 Microsoft SQL Server Management Studio - Query
58 23:01:08.960 Microsoft SQL Server Management Studio - Query
55 20:45:41.953 Microsoft SQL Server Management Studio - Query
64 19:08:37.310 Microsoft SQL Server Management Studio - Query
62 00:00:05.207 Microsoft SQL Server Management Studio - Query
Когда я бегу убить 61 я получаю следующие SPID 61: отката транзакции в процессе. Расчетное завершение отката: 0%. Ориентировочное время: 0 секунд. (так было за последние 24 часа!)
Что мне делать, чтобы исправить эту проблему?
Спасибо
Исходный запрос, который работал в течение 30 часов. Что это было на самом деле? –
Это был запрос, который считывал данные из файла excel с помощью openquery и вставлял его в таблицу temp. файл excel имеет около 30 строк, поэтому он очень мал. И я всегда запускаю этот запрос, но никогда не занимал много времени. даже если я просто запустил запрос для чтения данных из файла, он будет навсегда. SELECT * FROM OPENROWSET ('MSDASQL', 'Driver = {Microsoft Text Driver (* .txt; * .csv)}; DBQ = E: \ UploadFiles \;', 'SELECT * from new.csv') – Jaylen
Делает ли ' SELECT * FROM sys.dm_os_waiting_tasks WHERE session_id = 61' вернуть что-нибудь? –