日期:2014-05-18  浏览次数:20633 次

sp_who 结果分析求助
哪些大侠能帮我分析下我用sp_who抓出的进程为53的结果吗?非常感谢!

1, 我BaiDU了下ecid,表示的意思是线程,0代表主线程. sql server里什么时候会用到线程?为什么会有两个为0的主线程?
其中一个还是执行在master数据库上的.

2, 为什么53(ecid:2,3,4)的blk为53? 代表什么意思?正常吗?


spid ecid status loginame hostname blk dbname cmd request_id
53 0 suspended sa TERRY-PC 0 master SELECT 2
53 0 suspended sa TERRY-PC 0 uxx_database SELECT 3
53 1 runnable TERRY-PC 0 uxx_database SELECT 3
53 2 suspended TERRY-PC 53 uxx_database SELECT 3
53 3 suspended TERRY-PC 53 uxx_database SELECT 3
53 4 suspended TERRY-PC 53 uxx_database SELECT 3


------解决方案--------------------
如果是并行处理,则会为特定的会话 ID 创建子线程。主线程则以 spid = <xxx> 和 ecid =0 表示。其他子线程具有相同的 spid = <xxx>,但 ecid > 0。 

------解决方案--------------------
探讨

引用:
如果是并行处理,则会为特定的会话 ID 创建子线程。主线程则以 spid = <xxx> 和 ecid =0 表示。其他子线程具有相同的 spid = <xxx>,但 ecid > 0。

什么样才会引起并行处理呢? ecid =0的我出现了两条记录, 其中一个还是执行在master数据库上的.

------解决方案--------------------
这个并行处理的结果,多个cpu协调处理,其中有cpu还未处理完。
先看看能不能优化sql,如果不能优化,可能考虑降低并行度。