《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(4)

Gartner DSG数据安全治理 架构及解读 目录背景:架构图: 解释:英文解释:(自上而下)平衡业务与风险、威胁、合规之间的关系(5个维度之间的平衡)优先处理数据集制定安全策略实施安全工具策略配置同步从上到下,从需求调研开始实施数据安全治理。千万不要跨过数据摸底、治理优先级分析、制定治理整体策略,而直接从技术工具开始对数据安全进行治理。 先明确选择需要治理的对象,优先选择重要数据进行数据安全治理工作。可以通过数据梳理、分类分级等手段,完成数据资产盘点和筛选,在纷杂的数据中理清头绪。 阅读详情
《Microsoft Sql server 2008 Internals》索引目录:

《Microsoft Sql server 2008 Internals》读书笔记--目录索引

上文我们了解简单参数化查询的不足和预查询(Prepared Queries),现在我们了解编译对象和重编译的原因。

■编译对象(Complied Objects)

存储过程

存储过程和用户自定义标量函数几乎一样。 元数据表明objtype为Proc的编译计划被缓存,并被不断重用。默认情况下,缓存计划被用于成功的执行(Execution),就像sp_executesql那样。然而,存储过程和用户自定义标量函数还有一个选项可以在对象被执行的时候强制重编译。此外,你可以创建对象以便于每次存储过程被执行时创建一个新的计划。

对于一个单个的执行语句,要强制重编译,你可以使用execute....with recompile选项。我们看一个例子:

诸位可以猜猜,此时usecount应该是几?
邀月工作室 

 原因很简单,因为第三个计划使用了WITH RECOMPILE,从而强制使用了一个新计划,而原计划的使用次数是2不是3
注意,存储过程的WITH RECOMPILE选项只在当前执行有效,并不会保持在缓存以备重用。

函数

用户自定义标量函数,几乎同存储过程一样。如果你使用Execute语句,而不是表达式的一部分,你也可以使用强制重编译。

看一个例子:
邀月工作室

 而如果使用如下语句,则没有办法实现请求重编译:


TVFs(Table Valued Functions )是否被看作存储过程,取决于你如何定义它们。你可以定义TVFs为内联函数或一个多声明(Multistatement)函数。这两种都不允许在函数被调用时强制重编译。

调用函数如下:

邀月工作室
而内联函数实际上被看作视图了,还记得前文所述的完全相同参数化么?即select语句调用精准相同的参数的函数时才会重用。

■重编译的起因(Causes of Recompliation)

到目前为止,我们讨论了SQL Server会通过自动参数化而重用一个不恰当的计划,我们不得不强制重编译。然而,还有一些已经存在的计划因为潜在对象或执行环境的改变而没有被使用。这些非预期的重编译的原因归为两类:Correctness-based 重编译和Optimality-based 重编译
Correctness-based 重编译

SQL Server如果有理由怀疑已存在的计划不再正确,那么可能会选择重编译。这个不再正确的原因可能是潜在的对象改变引起的冲突,比如改变数据类型或删除一个索引等。Correctness-based 重编译又分为两大类:架构改变和环境改变。下列改变表明一个对象的架构发生了改变:

1、增加或删除表或视图的一个列

2、增加或删除表的约束、默认值或规则

3、删除一个定义在表或索引视图的一个索引(前提是索引被一个计划使用)

4、删除一个定义在表上的统计,从而引起了一个correctness-related的使用该表的任何计划的重编译。

5、增加或删除一个表的触发器

此外,在一个表或视图上运行sp_recomplile存储过程时,将导致该对象的修改,你可以在sys.objects中的modify_date列观察到这个变化。通过监测这个变化,SQL Server可以决定架构的改变是否发生,以使重编译在存储过程、函数、触发器访问表或视图时发生。在存储过程、触发器、或函数中运行sp_recompile,将清除所有过时的缓存,以确保在下次执行时被重编译。

其他的Correctness-based 重编译在环境(如各种set选项)改变时被调用。改变某个Set选项会引起查询返回不同和结果。SQL Server在一个计划被执行时保持对SET选项的跟踪。你可以通过一个DMF(名称为sys.dm_exec_plan_attributes)访问一个set选项的位图。这是通过一个视图(sys.dm_exec_plan_attributes)的计划句柄值来访问。

例如:

我们得到set_options的值4347,对应bit字符串1000011111011,如果改变ANSI_Nulls为OFF,对应Bit字符串1000011011011,注意差异在第六位,即32,如果我们不清除计划缓存,我们将对同同一个批处理的两个计划,对应各自的set_Options值:
邀月工作室
邀月工作室

通过下列PiVOT操作获取想要的任何句柄值:

邀月工作室

 不是所有的Set选项都引起重编译,下列Set选项改变时会引起重编译:
1、ANSI_NULL_DFLT_OFF
2、ANSI_NULL_DFLT_ON

3、ANSI_NULLS

4、ANSI_PADDING

5、ANSI_WARNING

6、ARITHABORT

7、CONCAT_NULL_YIELDS_NULL
8、DATEFIRST

9、DATEFORMAT

10、LANGUAGE

11、NO_BROWSERTABLE

12、NUMRIC_ROUNDABORT

13、QUOTED_IDENTITY
上述列表有两个选项,在与对象(存储过程、函数、视图、触发器)关联时有一个特殊的行为。ANSI_NULLS和QUOTED_IDENTITY实际上与对象值一起被保存。

我们试下列语句:
SELECT OBJECTPROPERTY(object_id('<object name>'), 'ExecIsQuotedIdentOn');  
SELECT OBJECTPROPERTY(object_id('<object name>'), 'ExecIsAnsiNullsOn');
注意返回值为1表明Set选项是ON,为0表明OFF,如果是NULL意味着拼写错误或没有合适的许可。

Optimality-based 重编译

下文介绍。

 

邀月注:本文版权由邀月和优快云共同所有,转载请注明出处。
助人等于自助!   3w@live.cn

 

 

Quartus的Signal Tap II的使用技巧 Signal Tap II全称Signal Tap II Logic Analyzer,是第二代系统级调试工具,它集成在Quartus II软件中,可以捕获和显示实时信号,是一款功能强大、极具实用性的FPGA片上调试工具软件。传统的FPGA板级调试是由外接的逻辑分析仪连接到FPGA的控制引脚,将内部引号引出至引脚I/O上,接着进行板级调试。 阅读详情

相关推荐

从气象预报到物流规划:多尺度地理加权回归(MGWR)在ArcGIS Pro中的实战应用

本文深入探讨了多尺度地理加权回归(MGWR)在ArcGIS Pro中的实战应用。通过对比传统GWR模型,MGWR的核心优势在于能识别不同解释变量的独特空间作用尺度,有效解决空间异质性问题。文章结合气象预报误差修正与物流网点选址两个案例,详细讲解了从数据准备、参数设置、带宽优化到结果解读的全流程,为地理数据分析师处理复杂空间数据提供了强大工具。

egg99的博客 1027

《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(2)

《Microsoft Sql server 2008 Internals》索引目录:《Microsoft Sql server 2008 Internals》读书笔记--目录索引在这一节,我们将继续关注Adhoc和参数化■Adhoc混合负载的优化如果你的查询大多数是临时(adhoc)的,从来不会被重用,似乎浪费内存去缓存这些计划了。SQL Server 2008增加了一个配置选项在这种情况下也能

邀月周记 2690

从音频录制到智能手表:Sigma-Delta ADC是如何在低功耗场景下‘欺骗’噪声的?

本文深入解析Sigma-Delta ADC在智能穿戴设备中的低功耗高精度实现原理,重点介绍其通过过采样和噪声整形技术‘欺骗’噪声的独特方法。以TWS耳机和医疗级健康监测为例,展示该技术如何在有限功耗预算下实现专业级信号采集,为消费电子设计提供关键解决方案。

weixin_30825581的博客 388

《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(5)

《Microsoft Sql server 2008 Internals》索引目录:《Microsoft Sql server 2008 Internals》读书笔记--目录索引上 文我们了解编译对象和重编译的起因之一:Correctness-Based Recompiles(基于更正的重编译),现在我们继续了解重编译的另一个起因:Optimality-based Recompiles(基于优化

邀月周记 2504

工程师必看:如何用定时截尾试验快速验证产品MTBF(附真实案例解析)

本文为硬件工程师详细解析了如何运用定时截尾试验快速验证产品MTBF(平均无故障工作时间)。通过七步实战法,结合工业物联网网关的真实案例,阐述了从参数设定、试验执行到结果判读的完整流程,并提供了MATLAB脚本实现自动化计算与可视化,帮助工程师在有限时间内科学评估产品可靠性。

weixin_29243063的博客 493

【雷达】一维和二维自适应波束形成(DBF))DBF附matlab代码

1 简介 数字波束形成技术是天线波束形成原理与数字信号处理技术相结合的产物,其广泛应用于阵列信号处理领域.由于电磁工作环境的恶化和大量射频干扰的存在,在极低的信干噪比(SINR)条件下进行目标检测和信息提取十分困难.对于阵列系统,往往采用自适应数字波束形成(ADBF)技术,来抑制强干扰和方向性干扰对有用信号的影响.介绍了数字波束形成器的基本原理及其DSP的实现结构.​ 2 完整代码 clc;clear all;close all;%%%%%%%%%%%%%%%%%一维DBF%%%%%%%%%%%%%

qq_59747472的博客 7265

《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(8)

《Microsoft Sql server 2008 Internals》索引目录:《Microsoft Sql server 2008 Internals》读书笔记--目录索引上文主要介绍了已编译计划、执行上下文和计划缓存元数据相关的几个常用的系统函数,并介绍了几个葵花宝典级的调优语句。本文将继续关注缓存大小管理、缓存项的成本(Costing of Cache entries) ■缓存大小管理

邀月周记 2456

材料仿真软件:LAMMPS_(8).温度和压力控制

在 LAMMPS 中,温度和压力的控制是通过多种恒温器和恒压器实现的。Nose-Hoover 恒温器和恒压器因其准确性和广泛适用性而被经常使用,而 Berendsen 恒温器和恒压器则因其计算效率高而适用于初步仿真或粗粒化模型。温度重标和压力重标方法虽然简单,但在某些情况下可以快速调整系统的温度和压力。通过选择合适的控制方法,可以根据具体的需求和系统特性来设计和运行分子动力学仿真,从而获得准确和可靠的结果。在实际应用中,建议先进行初步的仿真以确定合适的控制参数,然后再进行细致的仿真以验证结果的稳定性。

kkchenjj的博客 1692

《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(9)

《Microsoft Sql server 2008 Internals》读书笔记订阅地址: http://www.cnblogs.com/downmoon/category/230397.html/rss 《Microsoft Sql server 2008 Internals》索引目录: 《Microsoft Sql server 2008 Internal》读书笔...

dfdfadsf3443的博客 201

SAP ABAP CDS View 里的日期函数

摘要:本文系统介绍了ABAP CDS日期函数在企业级应用中的关键作用,包括账龄计算、合同续期等业务场景。重点解析了DATS_IS_VALID、DATS_DAYS_BETWEEN等核心函数的语义和使用边界,特别强调on_error四种异常处理策略的选择逻辑。针对系统日期获取,对比了经典CDS的参数注入和View Entity会话变量两种方式。文章还提供了完整可运行的示例代码(包含CDS视图和ABAP程序),帮助开发者快速验证不同版本下的函数行为差异,确保在实际项目中正确应用这些日期处理函数。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 376

基于STM32姿态解算-正点原子ATK-IMU901模块标准库开发——正点原子串口角度传感器模块十轴IMU加速度气压计陀螺仪_资料编号29

购买了正点原子的ATK-IMU901模块后,发现例程给的是HAL库的,本项目将HAL库例程转换为库函数版本(基于STM32)。实战开发,亲测无误。

嵌入式阿齐Archie 3859

《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(3)

《Microsoft Sql server 2008 Internals》读书笔记订阅地址: http://www.cnblogs.com/downmoon/category/230397.html/rss 《Microsoft Sql server 2008 Internals》索引目录: 《Microsoft Sql server 2008 Internal》读书笔记--...

dfdfadsf3443的博客 136

Challenge 4 - OSCP A

在c盘下发现一个windows.old,在里面可以找到SYSTEM和SAM文件,下载到本地,利用samdump2解密发现没解出来,再来试试pwdump.py(https://github.com/CiscoCXSecurity/creddump7)得到压缩包密码bludecode,解压之后发现一个比较特殊的文件configuration.php,里面有两个类似密码的字符串。登录之后在/opt/backups/下发现几个特殊文件,其中sitebackup3.zip是个正常的压缩包。但是这个压缩包是有密码的。

羽的博客 5770

《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(10)

《Microsoft Sql server 2008 Internals》索引目录:《Microsoft Sql server 2008 Internals》读书笔记--目录索引上文主要介绍计划缓存的时机和计划缓存冲突。本文将继续关注计划指南(Plan Guide)和优化指示(Optimization Hints),由于篇幅所限,计划指南分两部分,第一部分包括:优化提示、计划指南的意图、计划指南

邀月周记 2312

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(1)

《Microsoft Sql server 2008 Internals》索引目录:《Microsoft Sql server 2008 Internals》读书笔记--目录索引通过第八章的查询优化,我们大致了解SQL Server中的查询优化进程及查询执行的一些细节。因为查询优化通常是复杂和耗时的进程,SQL Server频频受益于重用已经生成并保存在计划缓存中的查询计划,而不是每次都产生一个

邀月周记 2155

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(6)

《Microsoft Sql server 2008 Internals》索引目录:《Microsoft Sql server 2008 Internals》读书笔记--目录索引上文我们了解编译对象和重编译的起因:Correctness-Based Recompiles,Optimality-based Recompiles。今天我们继续关注如何从缓存中移除计划和计划缓存内部操作。■从缓存

邀月周记 2070

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(11)

《Microsoft Sql server 2008 Internals》索引目录:《Microsoft Sql server 2008 Internals》读书笔记--目录索引本文将继续关注计划向导的后半部分,包括:计划指南的管理、计划指南的考虑因素、计划指南的有效性、从计划缓存中冻结计划。这也是计划缓存和重编译的最后一节。 ■管理计划指南  除了sp_Create_plan_guide和sp

邀月周记 1978

《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(7)

《Microsoft Sql server 2008 Internals》索引目录:《Microsoft Sql server 2008 Internals》读书笔记--目录索引上文我们了解计划缓存内部操作的第一部分-缓存存储。今天我们继续关注已编译计划、执行上下文和计划缓存元数据相关的几个非常有用的系统函数和视图。■已编译计划(Compiled Plans)在Object和SQL计划缓存存储中

邀月周记 2541
上一篇: 《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(3)
下一篇: 一个类似于杨辉三角的数组算法思路
downmoon
博客等级 码龄24年 1676粉丝 494原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值