广告
返回顶部
首页 > 资讯 > 数据库 >如何理解oracle硬解析、软解析、软软解析
  • 141
分享到

如何理解oracle硬解析、软解析、软软解析

2024-04-02 19:04:59 141人浏览 八月长安
摘要

如何理解oracle硬解析、软解析、软软解析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。硬解析和软解析有相同的一步,而软软解析与硬解析、

如何理解oracle硬解析、软解析、软软解析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

硬解析和软解析有相同的一步,而软软解析与硬解析、软解析完全不一样。先来说下理论上的东西,然后来做个实验。

硬解析过程:

    1.语法、语义及权限检查;

    2.查询转换(通过应用各种不同的转换技巧,会生成语义上等同的新的sql语句,如count(1)会转为count(*));

    3.根据统计信息生成执行计划(找出成本最低的路径,这一步比较耗时);

    4.将游标信息(执行计划)保存到库缓存

软解析过程:

    1.语法、语义及权限检查;

    2.将整条SQL hash后从库缓存中执行计划。

    软解析对比硬解析省了三个步骤。

软软解析过程:

    要完全理解软软解析先要理解游标的概念,当执行SQL时,首先要打开游标,执行完成后,要关闭游标,游标可以理解为SQL语句的一个句柄。

在执行软软解析之前,首先要进行软解析,MOS上说执行3次的SQL语句会把游标缓存到PGA,这个游标一直开着,当再有相同的SQL执行时,则跳过解析的所有过程直接去取执行计划。

SQL> drop table test purge;
SQL> alter system flush shared_pool;
SQL> create table test as select * from dba_objects where 1<>1;
SQL> exec dbms_stats.gather_table_stats(user,'test');

硬解析:
SQL> select * from test where object_id=20;
未选定行
SQL> select * from test where object_id=30;
未选定行
SQL> select * from test where object_id=40;
未选定行
SQL> select * from test where object_id=50;
未选定行

软解析:
SQL> var oid number;
SQL> exec :oid:=20;
SQL> select * from test where object_id=:oid;
未选定行
SQL> exec :oid:=30;
SQL> select * from test where object_id=:oid;
未选定行
SQL> exec :oid:=40;
SQL> select * from test where object_id=:oid;
未选定行
SQL> exec :oid:=50;
SQL> select * from test where object_id=:oid;
未选定行
软软解析:
SQL> begin
         for i in 1..4 loop
         execute immediate 'select * from test where object_id=:i' using i;
         end loop;
         end;
     /
     
SQL> col sql_text fORMat a40   
SQL> select sql_text,s.PARSE_CALLS,loads,executions from v$sql s
        where sql_text like 'select * from test where object_id%'
        order by 1,2,3,4;
SQL_TEXT                                 PARSE_CALLS      LOADS EXECUTIONS
---------------------------------------- ----------- ---------- ----------
select * from test where object_id=20              1          1          1
select * from test where object_id=30              1          1          1
select * from test where object_id=40              1          1          1
select * from test where object_id=50              1          1          1
select * from test where object_id=:i              1          1          4
select * from test where object_id=:oid            4          1          4  

可以看到软解析与软软解析相比,软软解析只是解析一次。

字段解释:
PARSE_CALLS  解析的次数

LOADS 硬解析的次数

EXECUTIONS 执行的次数




SQL执行过程图如下:


如何理解oracle硬解析、软解析、软软解析



关于如何理解oracle硬解析、软解析、软软解析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: 如何理解oracle硬解析、软解析、软软解析

本文链接: https://www.lsjlt.com/news/65851.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何理解oracle硬解析、软解析、软软解析
    如何理解oracle硬解析、软解析、软软解析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。硬解析和软解析有相同的一步,而软软解析与硬解析、...
    99+
    2022-10-19
  • 如何进行Oracle数据库硬解析、软解析、软软解析联系与区别的分析
    如何进行Oracle数据库硬解析、软解析、软软解析联系与区别的分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Oracle数据库硬解析和...
    99+
    2022-10-19
  • 在oracle 10.2.0.5分析硬解析及软解析及软软解析获取shared pool latch机制系列五
    结论 1,测试环境是oracle 10.2.0.5 2,_kghdsidx_count=1,即共享池子池个数是1个 3,硬解析需要获取shared pool latch 4,软解析需要获取shared...
    99+
    2022-10-18
  • Linux硬链接与软链接原理及用法解析
    在linux系统中有种文件是链接文件,可以为解决文件的共享使用。链接的方式可以分为两种,一种是硬链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link)。 硬链接概念 硬链接(ha...
    99+
    2022-06-03
    linux 硬链接 软链接
  • 如何进行VS2005软件的理解与分析
    如何进行VS2005软件的理解与分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。看来是WebDeployment本身有一定的bug,笔者猜想可能是编码问题造成的,WebDep...
    99+
    2023-06-17
  • 电脑安装软件解析包错误如何解决
    本文小编为大家详细介绍“电脑安装软件解析包错误如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“电脑安装软件解析包错误如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2023-02-21
    电脑
  • 免费动态域名解析软件有哪些
    以下是一些常见的免费动态域名解析软件:1. DDClient:支持多种动态DNS服务商。2. FreeDNS:支持动态DNS服务和静...
    99+
    2023-06-07
    免费动态域名 域名
  • 怎么解析手机APP应用软件开发
    怎么解析手机APP应用软件开发,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。手机应用软件开发概述     &n...
    99+
    2023-06-04
  • 【Linux】理解文件系统——软硬链接
    我们之前讨论的都是进程和被打开文件的关系,而如果一个文件是没有被打开呢?没有被打开的文件操作系统如何管理? 没有被打开的文件在磁盘上,所以磁盘上有大量的文件,这些文件要被静态管理起来,方便我们随时打开,而做这部分工作的我们称为文件系统。 ...
    99+
    2023-08-18
    linux 运维 服务器
  • 服务器免费域名解析软件有哪些
    以下是一些免费的服务器域名解析软件:1. BIND (Berkeley Internet Name Domain):是一款广泛使用的...
    99+
    2023-06-06
    免费域名解析 域名
  • 免费动态域名解析软件怎么使用
    免费动态域名解析软件可以帮助用户将动态IP地址映射到一个固定的域名上,使得用户可以通过域名访问自己的设备或服务器,而无需担心IP地址...
    99+
    2023-06-12
    动态域名解析软件 域名
  • web开发中如何解析坚持软文写作的原因
    这期内容当中小编将会给大家带来有关web开发中如何解析坚持软文写作的原因,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。软文追求的是一种春风化雨、润物无声的传播效果。如果说...
    99+
    2022-10-19
  • 国内免费动态域名解析软件有哪些
    以下是国内常用的免费动态域名解析软件:1. DNSPod:国内知名的 DNS 服务商,提供免费的动态 DNS 解析服务。2. 332...
    99+
    2023-06-03
    免费动态域名 域名
  • 国内最好的CRM软件深度解析与推荐
    随着企业业务的不断扩展,CRM(客户关系管理)软件的应用也越来越广泛。在国内,CRM软件的发展也非常迅速,不断涌现出许多优秀的CRM软件产品。本文将为您深度解析国内最好的CRM软件,并对其进行推荐。 一、CRM软件的介绍与分类CRM软件是一...
    99+
    2023-12-18
    最好的 深度 国内
  • 如何理解SQLite软件架构
    本篇内容主要讲解“如何理解SQLite软件架构”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解SQLite软件架构”吧!SQLite是一个非常受欢迎的数据...
    99+
    2022-10-18
  • Linux软连接该如何理解
    Linux软连接该如何理解,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、软链接创建 1、创建软链接 ln -s 【目...
    99+
    2023-06-28
  • 虚拟示波器:多通道分析软件自动测量功能解析
    HS5、HS6虚拟示波器配有一套强大的多通道分析软件包括,数字存储示波器,FFT频谱分析,任意波形发生器,瞬态\连续波形记录仪,数字多用表,I2C协议分析,CAN总线分析,串口分析,J1939解码,SM总线,PM总线,TWI总线,Acces...
    99+
    2023-06-04
  • 怎么理解Linux的硬链接与软链接
    这篇“怎么理解Linux的硬链接与软链接”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么理解Linux的硬链接与软链接”文...
    99+
    2023-06-16
  • win10手机版特色进行解析:微软牛大发了
    或许会有人疑问,“9”还没有,怎么就到Windows10了呢?显然,“Windows10”更能代表微软进入了一个全新的时代。 微软在打造多平台统一的道路上已经蹒跚行走了很长...
    99+
    2023-06-10
    win10 手机版 手机 特色 解析
  • 如何解析Oracle SCN
    本篇文章给大家分享的是有关如何解析Oracle SCN,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Oracle中的SCN(system change number)和我们的北...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作