Sql-Server
sp_who2 結果中的空白登錄
結果中有一些行的
sp_who2
列Login
值為空(見下圖),而login_name
列sys.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 )