当前位置:首页 > 系统运维 > 正文内容

SQL Server数据库的线程和纤程的概念与管理

a8116255316年前 (2010-06-30)系统运维9

此文章主要向大家介绍的是SQL Server数据库的线程和纤程,其中主要包括SQL Server数据库的线程和纤程的基本概念,SQL Server数据库如何正确的对线程和纤程的管理进行管理等相关内容的介绍。

一、基本概念

(一)线程

SQL Server 数据库使用操作系统的线程来执行并发任务。在不使用纤程的情况下,SQL Server将启动线程,并由OS将线程分配给cpu,线程管理由OS内核控制,当一个线程完成退出CPU,其他线程调度占用该CPU时,将发生一个上下文切换,这个切换是在应用程序的用户模式和线程管理的内核模式之间的切换,所以需要付出一定的代价,应当尽量避免这种切换

(二)纤程

为了减少上下文切换,引入纤程的概念,可以在SQL Server中启用纤程,纤程是线程的子模块,纤程由运行在用户模式下的代码管理,所以切换纤程比切换进程的代价少的多,因为纤程模式不需要在将用户模式和内核模式中切换,而切换线程则需要这种转换。

(三)两者的区别

SQL Server管理纤程的调度,而OS管理线程的调度;线程模式里 SQL Server为每个并发用户创建配一个线程,而纤程模式中 SQL Server为每个CPU分配一个线程,并为每个并发用户创建配一个纤程,一个线程中可以有多个纤程,纤程只在线程里切换,不用上下文切换

注意:SQL Server Personal Edition和 Desktop Edition不支持纤程模式;Win95,98不支持线程池

二、SQL Server数据库对线程和纤程的管理

SQL Server既可以为用户连接维护一个线程池,也可以维护一个纤程池(假如设置了纤程模式,则系统只维护纤程池,不在是线程池) 在连接池中,线程和纤程都看作工作纤程,并可以由max worker threads 选项来设置SQL Server可分配的线程或纤程的更大数目,一般采用默认值255 。

当一个语句需要SQL Server执行时:

(1)假如线程池里用空闲的线程,SQL Server将为该语句分配一个线程

(2)假如线程池中没有可供使用的空闲线程并且没有达到更大工作线程数量,SQL Server将为该命令创建新的工作线程

(3)假如到了更大线程使用数量并且没有空闲的线程,则进程必须等待其他处理完成后释放一个线程

三、配置SQL Server线程纤程

(1)如何启用纤程模式:

企业管理器->服务器属性->处理器->使用windows nt 纤程 或者用 sp_configure 将lightweight pooling 设置为1

(2)max worker threads 选项

该选项配置SQL Server数据库进程的可用工作线程数 默认值为 255

改变 *** :

企业管理器->服务器属性->处理器->更大工作线程或者用 sp_configure修改max worker threads

(3)affinity mask 选项

该选项在系统负荷过重时可以提高对称多处理器系统的性能,将线程与特定的处理器相关联,并指定SQL Server数据库使用的处理器

改变 *** :

企业管理器->服务器属性->处理器->处理器控制->选择一或多个将亲和力掩码组合在一起的处理器或者用 sp_configure修改affinity mask

(4)max degree of paralleli *** 选项

该选项可以限制在并行计划执行中使用的处理器数量

改变 *** :

企业管理器->服务器属性->处理器->并行->选择执行并行查询的处理器数量或者用 sp_configure修改max degree of paralleli *** 。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/21352.html

分享给朋友:

“SQL Server数据库的线程和纤程的概念与管理” 的相关文章

windows 7/8.1正在启动windows时间长的解决方法

windows 7/8.1正在启动windows时间长的解决方法

正在启动windows时间长怎么办 小编带来了Windows 7/8.1正在启动windows时间长解决方法,假如有朋友在安装完Windows系统之后一直停留在“正在启动windows”的话,不妨试一试下文的方法哦~ 原因:Windows 7/8.1不完全支持UEFI,需要CSM(Comp...

windows 7系统如何设置休眠时不断网以便继续完成下载

windows 7系统如何设置休眠时不断网以便继续完成下载

在Windows 7系统的默认设置中,当Windows 7系统处于休眠状态时,会同时断网的。如此一来,无论你正在使用迅雷还是快车等下载工具,同样可以在休眠状态下继续完成下载,最大限度做到从身边的小事开始支持环保。下面我们就详细介绍操作步骤,帮助Windows 7系统用户实现这一节能目标。 首先需要...

windows 7系统开机提示press any key to restart的故障分析及解

windows 7系统开机提示press any key to restart的故障分析及解

Windows 7 64位系统开机后提示"press any key to restart",无法进入系统了,具体现象如下所示: 故障分析: 故障的主要原因还是硬盘的问题,可以先检查是不是接触不良或坏了,进行修复或更换即可。 解决方法: 1、开机按F8不动到高级选项出现在松手,选“...

windows 7查看电脑近期使用情况确定有没有被他人使用

windows 7查看电脑近期使用情况确定有没有被他人使用

我一个朋友最近装装了Windows 7,他总感觉有人用了他的电脑,但是一直不确定,他想知道有没有人动用他的电脑,问我有没有办法 我说设置一下就行了: 启动Windows 7,在搜索栏中输入编辑组,马上就搜索到了编辑组策略,点击即可启动程序编辑组策略。依次展开组策略左侧树形列表的计算机配置/管理模...

windows 7系统开机后出现黑屏提示Windows无法启动

windows 7系统开机后出现黑屏提示Windows无法启动

一些用户的Windows 7系统开机后出现黑屏,代码为 Windows无法启动: WindowsSystem32ConfigSystem”。这个问题该如何修复呢?现在小编就给大家分析一下吧。 其实这个代码的意思是引导文件丢失了,引导文件(NTLDR)一般存放于C盘根目录下,是一个具有隐藏和只读属性...

windows 7系统开机提示Windows驱动器未就绪的故障原因及解决方法

windows 7系统开机提示Windows驱动器未就绪的故障原因及解决方法

 故障分析: 主要原因应该是不存在软盘驱动器或驱动器未安装,找到故障原因后,Windows 7 32位系统只要将软盘驱动器禁用就可以了。 解决措施: 1、右键点击计算机,选择管理,打开计算机管理窗口; 2、在计算机管理中,找到设备管理器,在右边的软盘控制器中右击,选择卸载即可。 以...