SQL Server 2012中Task是如何调度的?[原文来自:How It Works: SQL Server 2012 Database Engine Task Scheduling]
     从SQL Server 7.0以来调度算法并没有很大的改变。
算法概述:
     调度从分配NUMA节点开始,使用循环分配的方式,当一下链接来了,先分配给Node1,然后分配给Node2,然后在Node1
     分配了NUMA节点之后,在分配调度器,根据Load factor来做调度,Load factor可以简单的认为是分配给调度器的任务数量
     task分配是根据Load factor,如果首先的调度器比其他调度器多了120%,那么选择其他调度器,否则现在首选调度器
 
SQL Server 2012调度算法只在企业版上做了修改
     新的连接分配:新的连接是用环形循环分配,和前面提到的一样。所有的sql server 2012 产品都是这样分配连接的,然后查询目标节点把连接分配给负荷最小的调度器,然后这个调度器变为这个连接的首选调度器。
     
 
     新的连接并没有首选调度器,所以需要再分配的节点内给连接分配一个调度器,负荷最小的调度器被选中,如图的例子现在了Node1的sched2.
 
SQL Server 2012之前和非企业版
     这个比较简单,当task被请求,使用首选调度器,继续上面的例子如图:是sched2,当load factor是其他调度器120%以上的时候就需要重新选中调度器。
     
 
SQL Server 2012企业版
     在企业版中,对load factor的算法进行了改进。
     每个调度器,都有一个以cpu为目标的,资源池,并是有load factor对能力进行跟踪。并不是Load factor一样120%,而是通过每个资源池的平均cpu
     
调度还是以首选调度器开始,如果调度之后,并没有比同节点内的所有调度器平均少80%,那么可以调度,否则做调度平衡,选择可用资源最多的调度器。
     调度的例子(笔者认为例子有些错误,所以做了修改):
Scheduler RG Pool Target Pool Runnable Tasks Avg Pool/Task  
1 50 10 5  
2 50 8 6.25 Currently Best Target – More resources to provide for tasks in the same pool
 
 
假设sched1 可以为每个task提供5,那么sched2可以提供6.25
当前平均是 (5+6.25)/2 = 5.625
 
当有一个任务要被分配,首选是sched1那么如果被分配,可提供 50/11 = 4.545 > 5.625*0.8 = 4.5008所以可以分配

Scheduler RG Pool Target Pool Runnable Tasks Avg Pool/Task  
1 50 11 4.545   Not below 80th percentile
2 50 8 6.25  
 
当前平均= 5.3977 (6.25 + 4.5454/2) 
然后又有一个新的要分配,首选还是sched1,50/12 = 4.1666 < (4.545+6.25)/2*0.8 = 4.3181所以需要做调整,选择自愿最多的一个调度器

Scheduler RG Pool Target Pool Runnable Tasks Avg Pool/Task  
1 50 11 4.5454  
2 50 9 5.55  Added task
 
当前平均值 5.047 (5.55 + 4.5454 / 2)
 
相关Trace Flag
     -T8008 强制调度,不管scheduler提示,总是调度给最小的负荷(使用最小load factor或者资源池)
     -T8016 忽略负载均衡,总是调度给首选调度器

SQL Server 2012中Task是如何调度的?的更多相关文章

  1. SQL Server 2012中快速插入批量数据的示例及疑惑

    SQL Server 2008中SQL应用系列--目录索引 今天在做一个案例演示时,在SQL Server 2012中使用Insert语句插入1万条数据,结果遇到了一个奇怪的现象,现将过程分享出来,以 ...

  2. 微软BI 之SSAS 系列 - 在SQL Server 2012 中开发 Analysis Services Multidimensional Project

    SQL Server 2012 中提供了开发 SSAS 项目的两种模型,一种是新增加的 Tabular Model 表格模型,另一种就是原始的 Multidimensional Model 多维模型. ...

  3. (数据科学学习手册28)SQL server 2012中的查询语句汇总

    一.简介 数据库管理系统(DBMS)最重要的功能就是提供数据查询,即用户根据实际需求对数据进行筛选,并以特定形式进行显示.在Microsoft SQL Serve 2012 中,可以使用通用的SELE ...

  4. 在SQL Server 2012中实现CDC for Oracle

    在上篇在SSIS 2012中使用CDC(数据变更捕获)中,介绍了如何在SSIS 2012中使用CDC,本文在此基础上介绍,如何通过Attunity提供的Change Data Capture Desi ...

  5. 在SQL Server 2012中新建用户

    一.问题描述 在最开始装SQL Server 2012时我选择的是Windows身份认证方式,现在想添加一个用户采用SQL Server身份验证. 二.具体思路 1.新建用户 2.将新建的用户添加到相 ...

  6. 在SQL Server 2012中如何使用分组集

    作者:Itzik Ben-Gan  翻译:张洪举 此文摘自作者的<Microsoft SQL Server 2012 T-SQL基础>. 分组集就是你据以分组的一个属性集.传统上,SQL中 ...

  7. SQL Server 2012中的AlwaysOn尝试

      简介 SQL Server2012中新增的AlwaysOn是一个新增高可用性解决方案.在AlwaysOn之前,SQL Server已经有的高可用性和数据恢复方案,比如数据库镜像,日志传送和故障转移 ...

  8. SQL Server 2012 中 Update FROM子句

    首先说明一下需求以及环境 创建Table1以及Table2两张表,并插入一下数据 USE AdventureWorks2012; GO IF OBJECT_ID ('dbo.Table1', 'U') ...

  9. SQL Server 2012中LEAD函数简单分析

    LEAD函数简单点说,就是把下一行的某列数据提取到当前行来显示,看示例更能解释清楚,先看测试用脚本 DECLARE @TestData TABLE( ID INT IDENTITY(1,1), Dep ...

随机推荐

  1. 15天玩转redis —— 第三篇 无敌的列表类型

     据说60%的人使用redis看重的是redis中的list类型,那这个list有什么用呢???不用我说大家都明白,做队列使用呗,为什么用它呢,很简单呗, 因为有了它我就不需要专门的MQ产品啦,比如说 ...

  2. Oracle数据库,join多表关联方式、union结果集合并

    join on :   多表关联 内连接 :与其他表连接 from 表1 t join 表2 s on t.字段1 =s.字段2 join 表3 n on n.字段3=t.字段1 或 from 表1 ...

  3. 第 29 章 CSS3 弹性伸缩布局[上]

    学习要点: 1.布局简介 2.旧版本 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS3 提供的用来实现未来响应式弹性伸缩布局方案,这里做一个初步的了解. 一.布局简介 CSS3 提供一种崭新的 ...

  4. 第 26 章 CSS3 动画效果

    学习要点: 1.动画简介 2.属性详解 3.简写和版本 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS3 的动画效果,可以通过类似 Flash 那样的关键帧模式控制运行. 一.动画简介 CSS ...

  5. Data Structures/Algorithms 小甲鱼99讲笔记系列(1~~15讲)

    参考资料地址: http://www.icoolxue.com/ 1.数据结构中四种逻辑结构. ① 集合 集合中任何两个数据元素之间都没有逻辑关系,组织形式松散. ② 线性结构 线性结构中的 结点按逻 ...

  6. [小北De编程手记] : Lesson 01 玩转 xUnit.Net 之 概述

    谈到单元测试,任何一个开发或是测试人员都不会觉得陌生.我想大多数的同学也都是接触过各种单元测试框架.关于单元测试的重要性,应该不会有太多的质疑.这个系列,我向大家介绍一下xUnit.Net的使用.就让 ...

  7. C# Winform反序列化复杂json字符串

    最近接的私单是一个CS项目,里面所有的操作都是通过调用API接口来进行的. 接口详细说明 协议:https  请求方式:post  https://xx.xxx.net/app/clients 提交j ...

  8. SSH免密码登录过程解析和实现

    SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用SSH 协议可以有效防止远程管理过程中的信息泄露问题. 从客户端来看,SSH提 ...

  9. css用背景图来替换文字来达到隐藏文字的目的

    根据html代码的不同来分成两大类方法,如下 html代码: <h1 class="replace-indent">hello see</h1> 第一种方法 ...

  10. html 网页文本设计

    1.文本的排版 1.1 <body> <h2>李白</h2> <p align="center" > <font face=& ...