位置: 编程技术 - 正文

SQL Server并行操作优化避免并行操作被抑制而影响SQL的执行效率(sqlserver并发怎么处理)

编辑:rootadmin

推荐整理分享SQL Server并行操作优化避免并行操作被抑制而影响SQL的执行效率(sqlserver并发怎么处理),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:sqlserver如何处理数据并发,sqlserver数据库并发设置,sqlserver如何处理数据并发,sqlserver 并行度,sql server 并发,sqlserver并行配置不正确,sql并行语句,sqlserver 并行度,内容如对您有帮助,希望把文章链接给更多的朋友!

为什么我也要说SQL Server的并行:

这几天园子里写关于SQL Server并行的文章很多,不管怎么样,都让人对并行操作有了更深刻的认识。

我想说的是:尽管并行操作可能(并不是一定)存在这样或者那样的问题,但是我们不能否认并行,仍然要利用好并行。

但是,实际开发中,某些SQL语句的写法会导致用不到并行,从而影响到SQL的执行效率

所以,本文要表达的是:我们要利用好并行,不要让一些SQL的写法问题“抑制”了并行,让我们享受不了并行带来的快感

关于SQL Server的并行:

所谓的并行,指SQL Server对于那些执行代价相对较大(这个相对跟你的设置有关)的SQL时,如果数据库服务器存在多颗CPU,SQL Server查询引擎会采用并行的方式,也即采用多颗CPU参与整个运算过程,每颗CPU“分担”一部分计算任务,最后汇总合并各个CPU的计算的一种行为有时候,不当的并行查询不但不会加快查询的速度,想反会拖慢查询的效率,如果采用不当的并行操作,甚至会影响到整个服务器的稳定性。

所以SQL Server 究竟在多大代价下启用并行,是由配置的,这个配置可根据具体的情况做修改,有人说这个值的单位是“秒”,貌似没见过权威的资料说过到底单位是什么,这里暂不追究

有清楚这个阈值单位的园友情不惜赐教,谢了

尽管并行操作可能存在这样活着那样的问题,但是我们不能因噎废食,利用好并行,往往总是利大于弊。

但是并不是所有的执行代价较大SQL都能用到并行操作,实际开发中,有一些SQL的写法会抑制到并行操作,结果,导致整个SQL语句(存储过程)的效率上不去。

下面来举例说明。

并行查询是如何变成了串行的:

  如下是一个非常简单的查询操作,这些写法下,默认情况下开启了并行,可以看到,一共开启了8个线程来对SQL语句做计算。

  当然这SQL的执行效率还算不错,CPU时间是毫秒,执行总时间是毫秒,

  这里不要弄混淆了,CPU时间的毫秒,是8个CPU一共消耗的CPU时间,大于总的执行毫秒很正常的

  下面创建一个非常简单的函数,

  这个函数并没有什么实际意义,执行也非常简单,传入一个时间,返回这个时间,

  当然这里只是为了下面的操作演示,你完全可以说我蛋疼,我只是为了演示并行被抑制的现象

SQL Server并行操作优化避免并行操作被抑制而影响SQL的执行效率(sqlserver并发怎么处理)

  翻翻你的SQL代码,有没有类似这种写法?

  然后我们这么写这个查询,就是在查询条件上这么处理CreateDate>dbo.fn_justFunction('-1-1')(注意不是表的列,而是函数作用在查询条件上),注意这个函数并不影响任何查询结果,传入的-1-1,返回位依旧是-1-1,但是这么一变化,并行就变成串行的了,SQL执行期间只有一个CPU飚了起来,使用了到达%左右,,与此同时其他CPU跟没事人一样,也不上来帮忙,还是很闲还记得上面并行操作方式执行时间是多少么?毫秒,现在粗看起来是多少,这里是4S,也就是毫秒了。差了多少倍,我数学不好算不出来

  可以看到,并行操作和串行操作的效率差别还是很大的,对于CPU的利用也不充分(当然我不是强调一定要用满所有的CPU才算合理)

  再次强调一点,这里并不是在表的字段上加函数抑制了索引什么的,纯粹的影响到的是并行操作。

  当然,抑制并行的写法不单单是在查询条件在使用函数,实际开发中,影响会更大,

  因为实际业务中数据有可能会更大,SQL也可能更加复杂,这种情况可能更加难以甄别。

  比如连接条件上,如下,连接条件上使用函数导致无法使用并行的情况,也是实际开发中遇到的

  当然抑制到并行操作的不单单只有这两种写法,还有可能潜在其他类似的写法也会影响到并行查询。

  这就要求我们在写SQL的时候,不但要注意不能再字段上使用函数(无法使用该字段上的索引),同样,查询条件上也尽可能不要使用函数,有可能影响到并行操作。

如果处理并行操作被抑制的情况:

  如果要解决类似这些个问题,该怎么办?其实也很简单,建议查询条件通过函数运算之后赋值给一个变量,用变量去作为查询条件进行查询。

  再次开始了愉快的并行,享受并行带来的快感。

  对于连接条件上的函数处理也类似,将结果计算出来之后,保存在一个变量中,把变量写在连接条件中,

  当然可能有其他办法,我暂时还没有想到。

总结:

  本文通过一个简单的例子演示了并行操作被抑制的现象,说明了并行和串行在执行一个代价较大的SQL上的性能的巨大的差别

  其中提到的查询方式是查询条件上因为函数的原因抑制了并行,完全区别于在查询列上使用函数抑制索引的情况。

  并行查询可以充分调动CPU资源,以高效的方式完成查询,合理的利用并行会很大程度上提高SQL的执行效率。

  为了利用好并行,在写SQL的时候,一定要注意,防止并行操作遭到抑制,给性能带来影响.

  SQL优化是一个艰难而又反复的过程,即便如此,也乐在其中。

  面对繁复SQL,不但要有过硬的技术,也要有足够的耐心,才能看清事物的本质。

  对并行的理解还不够充分,有不对的地方希望各位看官指出,谢谢。

以上所述是小编给大家介绍的SQL Server并行操作优化避免并行操作被抑制而影响SQL的执行效率,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对积木网网站的支持!

SQL Server表中添加新列并添加描述 注:sqlserver及以上支持.版本估计是不支持(工作环境,).工作需要,需要向SQLServer现有表中添加新列并添加描述.从而有个如下存储过程.(先附上存储

SQL注入全过程深入分析 本文分析了SQL注入全过程。分享给大家供大家参考,具体如下:初步注入--绕过验证,直接登录公司网站登陆框如下:可以看到除了账号密码之外,还有

获取SqlServer存储过程定义的三种方法 存储过程的概念存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。

标签: sqlserver并发怎么处理

本文链接地址:https://www.jiuchutong.com/biancheng/318917.html 转载请保留说明!

上一篇:sql server几种Join的区别测试方法(sql server的go)

下一篇:SQL Server表中添加新列并添加描述(sql server添加语句)

  • 挂车交车船税吗
  • 分公司可以在银行开户吗
  • 月末处理工作主要包括
  • 企业裁员补偿金标准是多少
  • 审计调整分录汇总的内容
  • 分公司分开银行账户付款的好处
  • 政策信息咨询服务要到哪个部门办理资质
  • 会计录入凭证怎么录入
  • 短期借款,应付票据,应付账款和应交税费属于
  • 存货清查的目的,主要是进行总账和明细账
  • 以固定资产出资设立企业
  • 去年增值税销项少2元
  • 本月没开票怎么报税
  • 医院食堂承包方案的实施细则
  • 技术开发合同免征企业所得税吗
  • 软件企业两免三减半税收政策到期
  • 跨地区经营建筑企业预缴增值税可以先开票后预缴吗
  • 国家税务总局关于取消增值税扣税凭证
  • 旅行社差额征税增值税申报表怎么填
  • 单位杂工费报销计什么科目
  • 房地产企业如何计算增值税
  • 滴滴行程单修改后是否能查
  • 天猫店不开发票会被扣多少分
  • 购设备发票只开来一部分怎么入账?
  • 增值税如何计提和结转
  • 银行中间业务能开具增值税专票吗
  • 花卉租赁属于哪个税目
  • 惠普hp笔记本电脑怎么开机
  • 现金日记账的收为什么不根据银行和现金相互划转
  • 事业单位基建账并入大账规定
  • php几天可以速成
  • 股权和债权转让的关系
  • 贷款的钱转账了怎么办
  • web安全如何入门
  • 辅导期纳税人注意事项
  • 监事 兼职
  • elementui级联选择器清空方法
  • 公司股东年底分红怎么做账
  • thinkphp框架介绍
  • gpt-3的功能
  • vue假数据
  • 自动驾驶感知算法
  • 给最爱的他
  • 进项税额转出需要补税
  • 企业会计准则对收入的定义
  • python __call__
  • phpcms生成html
  • 进项税额转出冲减进项税额吗
  • 未分配利润与净利润有关系吗
  • 2023小型微利企业税收优惠
  • sql server s
  • 实行自行申报的项目有哪些
  • 公司还没有注销但是银行账户已经去注销了
  • 账户外币转人民币
  • 公司租用员工车辆维修费能报销吗
  • 存货计提存货跌价准备
  • 退回的保证金多了一点怎么做分录
  • 上个月库存没用完的下个月怎么计算
  • 担保公司预计负债
  • 公司员工餐费如何做账
  • 公司法人借款给公司用责任承担
  • 固定资产清理时累计折旧提完了怎么账务处理
  • 拿到营业执照后需要做的事
  • 营业执照增加经营范围需要法人去吗
  • mac不用密码
  • linux常用命令top
  • centos 安装chia
  • fedora使用
  • 桌面上家庭组图标是干嘛
  • Strumpy Shader Editor入门教程
  • javascript概述及作用
  • Vuforia 4.0 beta——Object Recognition (一)
  • unity控制相机旋转
  • unity c++ dll
  • js对象判断
  • 用js实现类的方法
  • 西安经开税务局电话号码
  • 四川省国税局
  • 税务人员服务态度恶劣怎么办
  • 国家税务局的单位性质是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设