Sql-Server

sp_who2 結果中的空白登錄

  • September 13, 2018

結果中有一些行的sp_who2Login值為空(見下圖),而login_namesys.dm_exec_sessions不為空,有時會發生相反的情況,這種行為的原因是什麼?

在此處輸入圖像描述

我建議你停止使用 sp_who2,有更好的方法來查看這些資訊。即使您不想使用第三方腳本,您也最好加入以下 dmvs 並獲得所需的內容。

sys.dm_exec_sessions sys.dm_exec_requests sys.dm_exec_sql_text sys.dm_exec_query_plan sys.dm_os_tasks

我使用Adam Machanic 的sp_whoisactive,不會嘗試自己寫任何東西。

要回答您的問題,會話 id 428 並行執行意味著多個執行緒,您可以使用以下查詢查看它。登錄名僅顯示exec_context_id =0哪個是父執行緒。

SELECT er.session_id, 
      er.status, 
      er.command, 
      er.blocking_session_id, 
      er.wait_type, 
      th.os_thread_id,
      os.cpu_id,
      ot.exec_context_id, 
      ot.task_state, 
      st.text 
FROM   sys.dm_os_threads th 
inner join sys.dm_os_tasks ot on th.worker_address = ot.worker_address 
inner join sys.dm_exec_requests er on ot.session_id = er.session_id 
inner join sys.dm_os_schedulers os on th.scheduler_address = os.scheduler_address 
      CROSS apply sys.Dm_exec_sql_text(er.sql_handle) st 
WHERE  er.session_id IN (SELECT session_id 
                        FROM   sys.dm_os_tasks 
                        GROUP  BY session_id 
                        HAVING Count(exec_context_id) > 1
                        ) 

引用自:https://dba.stackexchange.com/questions/186426