【未来虫教育】硬解析与软解析(未来之虫族 ...)

【未来虫教育】硬解析与软解析(未来之虫族 ...)

要想说清楚硬解析和软解析的区别,就得先说一下 SQL 执行的大致流程:

语法检查:检查 SQL 语句的语法是否正确。

语义检查:检查 SQL 语句中引用的表、列、数据类型等是否存在于数据库中,以及用户是否有足够的权限访问它们。

共享池查询:检查共享池(Shared Pool)中的库缓存(Library Cache),看是否已经存在相同或相似的 SQL 语句的执行计划。如果存在,它可能会重用已有的执行计划,这个过程称为 SQL 语句的软解析。如果不存在,则需要进行硬解析。

很显然,软、硬解析就发生在第 3 步,所以关于硬解析和软解析最简单直白的区别就是:

硬解析:需要生成执行计划

软解析:不需要生成执行计划

接下来主要说说硬解析,硬解析大致包括下面几个过程:

对 SQL 语句进行语法检查,看是否有语法错误。比如 select/from/where 等的拼写错误,如果存在语法错误,则退出解析过程;

通过数据字典,检查 SQL 语句中涉及的对象和列是否存在。如果不存在,则退出解析过程。

检查 SQL 语句的用户是否对涉及到的对象是否有权限。如果没有则退出解析;

通过优化器创建一个最优的执行计划。这个过程会根据数据字典中的对象的统计信息,来计算多个执行计划的 cost,从而得到一个最优的执行计划。这一步涉及到大量的数据运算,从而会消耗大量的 CPU 资源;(library cache 最主要的目的就是通过软解析来减少这个步骤);

将该游标所产生的执行计划、SQL 文本等装载进 library cache 中的 heap 中。

而软解析就是因为相同文本的 SQL 语句存在于 library cache 中,相对硬解析来说,会减少很多不必要的步骤,从而节省大量的资源耗费。

因为绑定变量可以将 SQL 语句中的常量变为变量,直接避免了 SQL 的多次硬解析,所以,想让数据库的硬解析减少的最有效办法之一就是:绑定变量

以下内容摘自 Thomas Kyte 的《Oracle编程艺术 深入理解数据库体系结构》 1.3 开发数据库应用的正确方法:

硬解析会减少系统能支持的用户数,但程度如何可能不容易度量。这取决于多耗费了多少资源,但更重要的因素是库缓存所用的闩定(latching)机制。硬解析一个查询时,数据库会更长时间地占用一种低级串行化设备,这成为闩(latch)。这些闩能保护 Oracle 共享内存中的数据结构不会同时被两个进程修改(否则,Oracle 的数据结构会最终遭到破坏),而且如果有人正在修改某个数据结构,等待队列也越长。当大家都在试图抢占这种珍贵的闩资源时,你的『服务器』可能看上去非常空闲,但是数据库中的所有应用都运行得非常慢。造成这种现象的原因可能是有人占据着某种串行化设备,而其他等待串行化设备的人开始排队,因此你无法全速运行。数据库中只要有一个应用表现不佳,就会严重地影响所有其他应用的性能。如果只有一个小应用没有使用绑定变量,那么即使其他应用原本设计得很好,能适当地将已解析的 SQL 放在共享池中以备重用,但因为这个小应用的存在,过一段时间就会从共享池中把已存储的 SQL 的执行计划排挤出去。这就使得这些设计得当的应用也必须再次硬解析 SQL,真是一粒老鼠屎就能毁了一锅汤

此时,再去回顾一下绑定变量的解释,是不是会更加清晰?

特别声明:[【未来虫教育】硬解析与软解析(未来之虫族 ...)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

山楂精降脂片:千年食材变身降脂新助手(山楂精降脂片哪个牌子好)

为什么一种看似寻常的中成药近年来受到如此青睐?山楂精降脂片作为OTC药物,是如何通过传统食材发挥降脂功效的?本文深入解析其成分机制、临床价值及服用指南。

山楂精降脂片:千年食材变身降脂新助手(山楂精降脂片哪个牌子好)

为啥飞机不让带超100毫升的液体登机?背后竟有这样一个故事|每日科普(为啥飞机不让带饮料)

基于准静态电子断层扫描技术的检测仪器是检测液体的介电常数,因为每种液体都有自己的介电常数,就像身份指纹一样,所以通过测量介电常数就可以对它们进行区分,而且即便液体在金属容器中也可以直接测量,非常方便。 对于…

为啥飞机不让带超100毫升的液体登机?背后竟有这样一个故事|每日科普(为啥飞机不让带饮料)

三通即食日式小菜:解密冷冻野泽菜的美味秘诀(三通的用法)

三通即食日式小菜是一种便捷的日料预制食品,其核心是浅渍工艺制成的冷冻野泽菜。本文将带你了解这种独特的食材从何而来,为何受到家庭厨师的喜爱,以及如何在家轻松享用这份日本风味。本文探讨了它的制作方式、应用场景和购买技巧,帮助您更好地领略这道日式

三通即食日式小菜:解密冷冻野泽菜的美味秘诀(三通的用法)

55岁『黄磊』睡觉戴呼吸机,餐前一把药,健康隐忧令人揪心!(『黄磊』戴假发)

新一季《向往的生活》中,『黄磊』说“我还是会做饭给你吃的”,『何炅』也表示“我还是会夸好吃的,虽然没人会信”。 『张艺兴』在节目中提出了一个关键问题:“这会不会是最后一季了?”他暗示节目的存续可能要看这一季的口碑和流量…

55岁『黄磊』睡觉戴呼吸机,餐前一把药,健康隐忧令人揪心!(『黄磊』戴假发)

量子光子的突破:让光速通信更安全的黑科技(量子光学:从半经典到量子化)

单光子不仅是量子通信的基石,也是量子计算和量子成像技术的核心。 随着这一技术的成熟,量子通信的安全性将得到极大提升。随着单光子技术的不断突破,我们离实现真正安全的量子通信、快速的数据处理和先进的成像技术又近了…

量子光子的突破:让光速通信更安全的黑科技(量子光学:从半经典到量子化)