位置: 编程技术 - 正文

SQL Server Parameter Sniffing及其改进方法

编辑:rootadmin

推荐整理分享SQL Server Parameter Sniffing及其改进方法,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

SQL Server 在处理存储过程的时候,为了节省编译时间,是一次编译,多次重用。当第一次运行时代入值产生的执行计划,不适用后续代入的参数时,就产生了parameter sniffing问题。 create procedure Sniff1(@i int) as SELECT count(b.SalesOrderID),sum(p.weight) from [SaleSQL Server 在处理存储过程的时候,为了节省编译时间,是一次编译,多次重用。当第一次运行时代入值产生的执行计划,不适用后续代入的参数时,就产生了parameter sniffing问题。

Parameter Sniffing问题发生不频繁,只会发生在数据分布不均匀或者代入参数值不均匀的情况下。现在,我们就来探讨下如何解决这类问题。

1. 使用Exec() 方式运行动态SQL

exec Nosniff1 ;

exec Nosniff1 ;

从上述trace中可以看到,在执行查询语句之前,都有SP: CacheInsert事件,SQL Server做了动态编译,根据变量的值,都正确的预估了结果集,给出了不同的执行计划。

SQL Server Parameter Sniffing及其改进方法

2. 使用本地变量

exec Nosniff2 ;

exec Nosniff2 ;

如上一篇文章所述,使用本地变量,参数值在存储过程语句执行过程中得到,SQL Server在运行时不知道变量的值,会根据一个预估值进行编译,给出一个折中的执行计划。

3. 使用Query Hint,指定执行计划

在 SELECT、DELETE、UPDATE 和 MERGE 语句最后加上OPTION ( [ ,...n ] ),对执行计划进行指导。当数据库管理员知道问题所在时,可以通过hint引导SQL Server生成一个对所有变量都不太差的执行计划。

以上所述是小编给大家介绍的SQL Server Parameter Sniffing及其改进方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对积木网网站的支持!

sqlserver实现树形结构递归查询(无限极分类)的方法 SQLServer开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式百度百科公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from

SQL Server Alwayson添加监听器失败的解决方法 一、错误描述1.群集服务未能使群集服务或应用程序Alwayson完全联机或脱机。一个或多个资源可能处于失败状态。这可能会影响群集服务或应用程序的

SqlServer将查询结果转换为XML和JSON 很久之前用到的,现在整理在这,里面一些代码来源于网上,不过有些bug已被我修改了。1.查询结果转XMLDECLARE@ParameterSQLNVARCHAR(MAX)='SELECT*FROMtable';DECLARE@SQ

标签: SQL Server Parameter Sniffing及其改进方法

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

上一篇:用非动态SQL Server SQL语句来对动态查询进行执行(动态sql语句)

下一篇:sqlserver实现树形结构递归查询(无限极分类)的方法(sql树结构)

  • 什么是消费税的计税销售额?价外费用是什么?
  • 增值税附加税的会计处理
  • 平均股东权益在利润表中怎么看
  • 预算会计无偿调拨净资产
  • 制造费用多结转了下月如何调整
  • 政府回购土地免税政策
  • 库存商品赠送给客户要开票吗
  • 外贸委外加工企业成本怎么核算
  • 事业基金转入哪个科目
  • 常见的税收优惠
  • 预收账款本期发生额怎么算
  • 建总账的注意事项
  • 私车公用产生的过路费开个人发票还是公司发票
  • 递延所得税当期发生额
  • 国家金库是什么税费
  • 一次性医保补助多少钱
  • 文化事业建设费减免政策
  • 实收资本何时交税
  • 小规模纳税人增值税免征额
  • 残保金减免如何做账
  • 建设项目投资中的预备费包括
  • 鸿蒙os程序
  • 报废资产未及时核销
  • 税控盘技术服务费可以抵税吗
  • deepin怎么删除账户
  • linux使用范围
  • 经营性流动负债计算公式
  • 出口收汇可以收人民币吗
  • 发票未认证丢失怎么补办
  • 单位和个人交付的区别
  • 食堂现金管理办法
  • thinkphp3.2.3
  • uni-app ——使用uploadFile上传多张图片
  • sql server2016使用
  • Android AsyncTack 异步任务实例详解
  • 车间买的工具如何做会计分录
  • 利息收入的会计科目怎么做
  • etcd4
  • 库存现金怎么算
  • 所得税报表的营业成本包括费用吗
  • 垃圾处理费怎么申报
  • 附加税减半征收政策是哪个文件
  • 行政单位无偿划拨资产账务处理
  • 年终奖政策,提成怎么算
  • 建筑企业预缴税款怎么算
  • 租赁公司异地经营
  • 开会旅游的费用是多少
  • 发票拿到了怎样作废
  • 利税总额计算公式表
  • 异地建筑服务开全电发票
  • 其他应收款收不回来怎么写情况说明
  • 未交增值税的核算方法
  • 购置固定资产进项税处理的变迁
  • 低值易耗品怎么做账
  • 民办非企业可以开发票吗
  • 各种会计凭证的填制
  • sql server创建备份
  • mysql导入导出sql文件
  • mysql5717安装及配置超详细教程
  • safari 快捷键
  • freebsd使用手册
  • 虚拟机基本知识
  • smsvchost.exe是什么文件 电脑中Svchost.exe病毒解决办法
  • winsock2
  • windows怎么定位
  • win7虚拟xp系统怎么安装
  • icqlite.exe进程的详细介绍 icqlite进程的查询 作用是什么
  • 电脑开启虚拟wifi
  • easyui validatebox验证
  • dos字符串替换
  • vbs和批处理区别
  • python怎么生成excel
  • node.js实战
  • javascript声明变量的语句
  • 置顶是什么意思呢
  • 简单阐述javascript的主要作用
  • 国税发票打印汇总怎么弄
  • 如何打印个人所得税证明
  • 地税和国税是什么关系
  • 如果我是科学家我会发明什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设