您好,欢迎来到枫云教育。
搜索
您的当前位置:首页SQLserver的workerthread工作线程讲解

SQLserver的workerthread工作线程讲解

来源:枫云教育


我们都知道SQL server的worker thread是SQL server 用来执行task的工作线程。Worker threads 的数目缺省是SQL server 动态创建的,需要多少就会创建多少,直到到达max worker threads的上限。如果你想改变缺省的worker threads,那么可以使用下面的脚步修改

我们都知道SQL server的worker thread是SQL server 用来执行task的工作线程。Worker threads 的数目缺省是SQL server 动态创建的,需要多少就会创建多少,直到到达“max worker threads”的上限。如果你想改变缺省的worker threads,那么可以使用下面的脚步修改:

exec sp_configure'show advance',1

go

reconfigure with override

go

exec sp_configure'max worker threads',500

go

reconfigure with override

重新启动SQL Server 服务,然后运行,你就会发现SQL server的 max worker threads 参数已经生效:

exec sp_configure'max worker threads'

结果:

一般情况下,max worker threads的缺省值是0,表示SQL Server 就能够根据用户请求自动确定正确的活动工作线程数。这时候sp_configure 不会告诉你现在的 max worker threads的数目:

exec sp_configure'max worker threads'

结果:

你会注意到config_value 和 run_value都是0。那么如何得知SQL server 决定的那个 max worker threads是多少呢?答案就是察看DMV sys.dm_os_sys_info:

select max_workers_count,scheduler_count,cpu_count,hyperthread_ratio from sys.dm_os_sys_info

结果如下:

该DMV还输出一个比较有意思的column就是 hyperthread_ratio. 它表示一个物理处理器包公开的逻辑内核数与物理内核数的比,而并不能告诉您是否启用了hyperthread 模式。我上面的结果表示一个物理CPU socket 包含了4个CPU。

Copyright © 2019- fengyunshixun.cn 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务