位置: 编程技术 - 正文

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树结构)

  • 房产税会计分录怎么做
  • 采购返利怎么生成发票
  • 出资款在现金流中怎么体现
  • 临时营业执照有效期多久
  • 个体工商户核定应税所得率
  • 哪些收据可以税务登记
  • 非股东入资款会计分录怎么写?
  • 工会经费用于什么
  • 简易计税的收入怎么做账
  • 买二手面包注意事项
  • 哪些情况下,企业需要进行分销渠道设计决策
  • 对方公司破产债务怎么办
  • 境内公司购买境外公司服务 缴税
  • 转让境外股权损失能否税前扣除
  • 超市的商品进销表怎么做
  • 增值税普通发票需要交税吗
  • 本月没开发票怎样报税
  • 小规模印花税怎么报
  • 城市维护建设税税率
  • 已核销的应收账款
  • 苹果14.5新功能
  • 鸿蒙 功能
  • cpu性能排行榜天梯图快科技
  • php数组函数题目
  • PHP:oci_set_client_info()的用法_Oracle函数
  • php做
  • 如何自定义win10开机音乐
  • 贷款利息不能抵扣进项税
  • 增值税普通发票怎么开
  • 销售折让怎么开票
  • 企业将自有房产全部租出去房产税如何征收
  • 增值税专用发票有几联?
  • 在海洋里游泳
  • 高德加载kml
  • 初雪与最后的秋天的区别
  • nginx同一个端口设置两个网站
  • 使用二氧化碳灭火器时人应该站在什么位置
  • 网页视频不显示画面
  • python调用cuda执行加法
  • densenet网络结构详解
  • 如何计算公司需增加的营运资金
  • 零税率和免税的含义和区别
  • 留抵退税税务总局规定的其他情形
  • 客户的赔偿金会计分录
  • phpcms 标签
  • 帝国cms灵动标签 PHP变量文章ID加减1
  • 坏账准备抵消期初未分配利润
  • 个体工商户怎么年审
  • 建筑工程发票来自哪里
  • 企业促销费用项目有哪些
  • 基建罚款支出计算方法
  • 社保缴费基数如何核定
  • 企业接受股东划入资产的处理
  • 非公司员工机票能报销吗
  • 代理记账服务业务内容
  • 软件开发过程中,一个错误发现的越晚
  • 企业购买土地如何缴税
  • 什么是非关联方账户
  • 怎么开劳务派遣工作证明
  • 转账凭证的编制流程
  • 借款利息怎么记账
  • sql的排序函数
  • 通过SQL语句直接把表导出为XML格式
  • 关于月亮的诗句
  • win10rs2是哪个版本
  • xp的开始菜单
  • 内存运行linux
  • win7系统如何
  • ssh远程登录设置
  • linux 指定动态库连接位置
  • cocos2dx ccbreader内存泄露
  • socket pf_inet
  • node.js入门
  • 运用javascript制作网页
  • Node.js 中exports 和 module.exports 的区别
  • react.development.js
  • JavaScript正则表达
  • 深圳市国家税务局电子税务局官网
  • 服务合同需要交个人所得税嘛
  • 辽宁地税电子税票查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设