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 на этом компьютере.
Другие вопросы по тегам