sys sysprocesses в SQL Server список KPID 4056, но KPID не существует в процессе сервера
Я выполняю запрос от sys.sysprocesses
одним из результатов является процесс с kpid
"4056" и SPId 390
но когда я увидел диспетчер задач Windows или tasklist
из командной строки 1-я пытался убить этот процесс с kill 390
в сервере sql: он не убивает и остается в kill/rollbak
2- я пытался убить через командную строку taskkill /pid 4056
он говорит, что:"процесс с этим PID
не выходит."в любом случае, чтобы убить этот процесс?
1 ответ
Решение
В моей истории это был сбой при завершении процесса, запущенного для Sharepoint со следующим подобным запросом, и в течение долгого времени остававшегося в состоянии уничтожения / отката. и я попытался решить проблему, не перезапуская сервер SQL, который мне не удалось, но показывает, где вы можете найти KPID и как их убить
SELECT f1, f2
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'WSS;IMEX=1; DATABASE=http://portal.local/AA/XX/YY;LIST=Feedback;VIEW=;RetrieveIds=Yes;',
'SELECT f1, f2 FROM LIST') AS derivedtbl_1
- используйте Process Explorer, чтобы найти нужный экземпляр sqlserver.exe, просматривая расположение, отображаемое при наведении мыши на всплывающую подсказку
- перейдите на узел потоков, и вы найдете там поток ядра
- но убивать его не рекомендуется и зависнет SQL-сервер, и это заставит вас перезапустить его в моем случае
- Перезапустите службу DTC(распределенный координатор транзакций) и службу агента SQL-сервера. Это еще одна рекомендация, которая может помочь безопасно убить kpid на этом компьютере.