以下文章主要是介绍SQL Server线程和SQL Server纤程的概念以及对两者在实际操作中的不同之处与SQL Server数据库对线程与纤程的实际管理的描述,以下就是文章的主要内容的详细解析,望大家会对其有更好的了解。
(一)SQL Server线程
SQL Server 使用操作系统的线程来执行并发任务。在不使用纤程的情况下,SQL Server将启动线程,并由OS将线程分配给cpu,线程管理由OS内核控制,当一个线程完成退出CPU,其他线程调度占用该CPU时,将发生一个上下文切换,这个切换是在应用程序的用户模式和线程管理的内核模式之间的切换,所以需要付出一定的代价,应当尽量避免这种切换
(二)纤程
为了减少上下文切换,引入纤程的概念,可以在SQL Server中启用纤程,纤程是线程的子模块,纤程由运行在用户模式下的代码管理,所以切换纤程比切换进程的代价少的多,因为纤程模式不需要在将用户模式和内核模式中切换,而切换线程则需要这种转换。
(三)两者的区别
SQL Server管理纤程的调度,而OS管理线程的调度;线程模式里 SQL Server为每个并发用户创建配一个SQL Server线程,而纤程模式中 SQL Server为每个CPU分配一个线程,并为每个并发用户创建配一个纤程,一个线程中可以有多个纤程,纤程只在线程里切换,不用上下文切换
注意:SQL Server Personal Edition和 Desktop Edition不支持纤程模式;Win95,98不支持线程池
二、SQL Server对线程和纤程的管理
SQL Server既可以为用户连接维护一个线程池,也可以维护一个纤程池(假如设置了纤程模式,则系统只维护纤程池,不在是线程池) 在连接池中,线程和纤程都看作工作纤程,并可以由max worker threads 选项来设置SQL Server可分配的SQL Server线程或纤程的更大数目,一般采用默认值255 。
当一个语句需要SQL Server执行时:
(1)假如线程池里用空闲的线程,SQL Server将为该语句分配一个线程
(2)假如线程池中没有可供使用的空闲线程并且没有达到更大工作SQL Server线程数量,SQL Server将为该命令创建新的工作线程
(3)假如到了更大线程使用数量并且没有空闲的线程,则进程必须等待其他处理完成后释放一个线程
正在启动windows时间长怎么办 小编带来了Windows 7/8.1正在启动windows时间长解决方法,假如有朋友在安装完Windows系统之后一直停留在“正在启动windows”的话,不妨试一试下文的方法哦~ 原因:Windows 7/8.1不完全支持UEFI,需要CSM(Comp...
打开IE浏览器的时候、聊QQ的时候、玩游戏的时候… … 这到底是谁惹的祸呢? 很多人都知道Windows 7桌面特效全部开启会使系统性能降低,那到底是哪个特效导致的这一情况呢? 解决办法: 右键计算机,高级系统设置-性能-设置-关闭”任务栏和开始菜单使用动画“和”最大化和最小化动态显示窗口“...
重装系统是我们面对许多电脑问题时的终极方法,不过重装系统也不意味着就能将全部的问题都修复。一些用户在重装系统后开机时,电脑卡在“正在启动Windows”开机界面上了,这要怎么解决呢? Windows 7系统重装后卡在开机界面的解决方法: 一、首先可以看看该故障出现的原因是否是因为启动了acp...
问题现象,具体如下所示: 故障分析: 一般来说,出现这种情况是因为电脑误删系统文件或者是系统文件被顽固木马破坏。 解决方法: 1、下载360安全卫士,找到里面的急救箱开始急救,然后进行修复,完成后重新启动; 2、下载瑞...
Windows 7/8系统: 控制面板——自动播放——取消掉为所有媒体和设备设置自动播放 winXP系统: 开始—运行—gpedit.msc—计算机配置—管理模板—系统—关闭自动播放—已启用—所有驱动器—确定 关闭自动运行功能说明: 一旦您将媒体插入驱动器...
经过几天的测试后发现,Windows 7用户反映的情况确实存在,但并没有达到“频繁”的情况。同时,也并非是迅雷或快车抢了带宽。(即便是抢了带宽,表现的形式也是页面打开慢,而非是掉线),寻找问题的原因过程中,我们认为是Windows 7系统对于网卡的电源管理的默认设置造成的。 下面,就以Window...