1 2 3 4

随笔分类 -  Oracle

摘要:前言 在Oracle中,每条SQL语句在执行之前都需要经过解析(Parse),根据解析的过程可以分为3种类型:硬解析(Hard Parse)、软解析(Soft Parse)和软软解析(Soft Soft Parse),软软解析也叫快速解析(Fast Parse)。DDL语句每次执行都需要进行硬解析, 阅读全文
posted @ 2021-08-12 14:16 As-before-如初 阅读(1077) 评论(0) 推荐(0)
摘要:Cursour(游标)是Oracle数据库中解析SQL和执行SQL的载体。 Shared Cursor 定义 Shared Cursor是指缓存在库缓存里SQL语句和匿名PL/SQL对应的SQL文本、解析树、目标SQL涉及的对象、目标SQL中的绑定变量及SQL的执行计划等信息。 查询方式 Share 阅读全文
posted @ 2021-07-06 07:44 As-before-如初 阅读(459) 评论(0) 推荐(0)
摘要:V$MYSTAT 当前会话的统计信息 V$SESSTAT 实例所有会话的统计信息。 作用 查看各个session资源占用 session登陆后资源使用率 快照间资源占用比 常用列说明 SID :session唯一ID STATISTIC# :资源唯一ID VALUE :资源使用 V$SYSSTAT 阅读全文
posted @ 2021-06-24 11:05 As-before-如初 阅读(435) 评论(0) 推荐(0)
摘要:Oracle执行计划概述 Oracle执行计划详解 获取执行计划 获取执行计划之Autotrace 获取执行计划之explain plan for 获取执行计划之dbms_xplan.display_cursor() 获取执行计划之dbms_xplan.display_awr() 获取执行计划之10 阅读全文
posted @ 2021-06-21 07:50 As-before-如初 阅读(67) 评论(0) 推荐(0)
摘要:Oracle Hint Oracle Hints是一种机制,用来告诉优化器按照我们的告诉它的方式生成执行计划,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式。 Hint的作用 调整目标SQL使用的优化器类型 调整优化器的优化目标 调整表的访问路径 调整表的连接类型 调整表的连接顺序 阅读全文
posted @ 2021-06-20 08:15 As-before-如初 阅读(261) 评论(0) 推荐(0)
摘要:AND-EQUAL(INDEX MERGE) INDEX MERGE是指当where条件中出现针对多个不同索引列的等值条件,Oracle会分别去扫描这些索引列,然后合并每个索引的集合,找到值相同的ROWID最后回表。 缺陷 涉及到的索引都为单列索引 索引都在查询中出现 谓词使用=关系符号连接 从Or 阅读全文
posted @ 2021-06-18 08:25 As-before-如初 阅读(294) 评论(0) 推荐(0)
摘要:简介 库缓存主要用于缓存刚刚执行过的 SQL 语句和 PL/SQL 语句(如存储过程、函数、包、触发器)所对应的执行计划、解析树(Parse Tree)、Pcode、Mcode 等,当同样的 SQL 语句和 PL/SOL 语句再次被执行时无须再次从头开始解析,从而提高 SQL 语句和 PL/SQL语 阅读全文
posted @ 2021-06-17 09:08 As-before-如初 阅读(789) 评论(0) 推荐(0)
摘要:图解Library Cache 结构说明 Hash Bucket 库缓存相当于一个Hash Table由一组Hash Bucket构成,每个Hash Bucket存储相同哈希值的所有库缓存对象句柄,不同库缓存对象句柄间用指针连接,构成库缓存对象句柄链表(Library Cache Object Ha 阅读全文
posted @ 2021-06-17 08:55 As-before-如初 阅读(257) 评论(0) 推荐(0)
摘要:简介 表连接,顾名思义多个表之间用用连接条件连接在一起,使用表连接的目标SQL其目的就是从多个表获取存储在这些表中不同维度的数据。 解析表连接SQL的要素 目标SQL文本的写法 SQL文本的写法决定表连接的类型:内连接、外连接、自连接 自连接:同一张表内的字段做连接 3. 表连接顺序 不管目标SQL 阅读全文
posted @ 2021-06-10 08:15 As-before-如初 阅读(295) 评论(0) 推荐(0)
摘要:定义 目前一般我们使用的索引都是B-Tree索引,索引结构中存储的是键值和对应ROWID。位图索引是指用位图表示的索引,通常创建在有大量重复值的列上,针对每个键值建立不同的位图。索引结构中主要存储键值、起止ROWID和位置编码,位置编码中的每一位表示键值对应数据行的有无,一个块可能指向多行数据的位置 阅读全文
posted @ 2021-06-08 08:14 As-before-如初 阅读(438) 评论(0) 推荐(0)
摘要:B-Tree索引内部结构 B-Tree是一种常见的数据结构,可以显著减少定位记录时所经历的中间过程,从而加快存取速度,主要用于OLTP系统(事务系统)。B-Tree索引包含的主要组件如下: 根节点(Root Node):一个B-Tree索引只有一个根节点,它实际就是位于树的最顶端的分支节点。 分支节 阅读全文
posted @ 2021-05-05 11:20 As-before-如初 阅读(262) 评论(0) 推荐(0)
摘要:Oracle 索引 简介 索引是建立在表上的可选数据库对象,是一组排序后的的索引键。主要用于加快数据的检索,类似于书籍的目录,快速定位到目标数据。索引在物理上和逻辑上都是独立的,创建或删除索引对基表不会有影响。当对基表进行DML操作时Oracle会自动管理索引,无需手动处理。 索引分类 结构分类 分 阅读全文
posted @ 2021-05-02 17:25 As-before-如初 阅读(358) 评论(0) 推荐(0)
摘要:全表扫描(Full Table Scans, FTS) 全表扫描是指Oracle在访问目标表里的数据时,会从该表所占用的第一个区(EXTENT)的第一个块(BLOCK)开始扫描,一直扫描到该表的高水位线(HWM,High Water Mark),这段范围内所有的数据块Oracle都必须读到。Orac 阅读全文
posted @ 2021-04-30 08:49 As-before-如初 阅读(155) 评论(0) 推荐(0)
摘要:简介 优化器是Oracle的内置软件,可以确定执行目标SQL的最有效方式。优化器的模式决定Oracle解析目标SQL时所用优化器的类型,以及决定使用CBO时计算成本的侧重点。优化器的模式不同,CBO计算成本值的方法也不同。控制Oracle优化器模式的参数为optimizer_mode。 查看参数 s 阅读全文
posted @ 2021-04-24 13:35 As-before-如初 阅读(191) 评论(0) 推荐(0)
摘要:基于代价的优化方式(Cost-Based Optimization,简称CBO) CBO选择目标SQL执行计划的判断原则是成本,从目标SQL的诸多执行计划中选取成本值最小的执行路径为其执行计划,各执行路径的成本值是根据目标SQL中涉及到的表、索引、列等相关对象的统计信息计算出来的,实际反应执行目标S 阅读全文
posted @ 2021-04-20 09:04 As-before-如初 阅读(1120) 评论(0) 推荐(1)
摘要:简介 基于规则的优化器(RBO)是通过编码在Oracle数据库中的一系列固定的规则,来决定目标SQL的执行计划。Oracle事先给各种类型的执行路径定一个等级,从1到15,等级1对应执行路径的执行效率最高,等级15对应执行路径的执行效率最低。对于等级相同的执行计划,oracle根据目标对象在数据字典 阅读全文
posted @ 2021-04-16 11:19 As-before-如初 阅读(607) 评论(0) 推荐(0)
摘要:SQLPlus中一键执行 -- -- -- Name: xplan.sql -- -- Author: Adrian Billington -- -- Description: Creates a package named XPLAN as a wrapper over DBMS_XPLAN. P 阅读全文
posted @ 2021-04-16 08:34 As-before-如初 阅读(186) 评论(0) 推荐(0)
摘要:口诀 最右最上先执行 方法 从上往下,第一个没有子节点的步骤先执行 对于兄弟节点,即靠上的节点先执行 所有兄弟节点执行完以后,执行父节点 缩进最深的,最先执行 缩进深度相同的,先上后下 原则 从上至下,从右向左 由上至下:在执行计划中一般含有多个节点,相同级别(或并列)的节点,靠上的优先执行,靠下的 阅读全文
posted @ 2021-04-16 08:21 As-before-如初 阅读(815) 评论(0) 推荐(0)
摘要:获取执行计划的方法 获取执行计划之Autotrace 获取执行计划之explain plan for 获取执行计划之dbms_xplan.display_cursor() 获取执行计划之dbms_xplan.display_awr() 获取执行计划之10046事件 获取执行计划之10053事件 获取 阅读全文
posted @ 2021-04-15 08:34 As-before-如初 阅读(101) 评论(0) 推荐(0)
摘要:AWR AWR(Automatic Workload Repository 自动工作负载库)。AWR报告是进行日常数据库性能评定、问题SQL发现的重要手段。可以自动采集Oracle运行中的负载信息,并生成与性能相关的统计数据。 原理 AWR报告的原理是基于Oracle数据库的定时镜像功能。Oracl 阅读全文
posted @ 2021-04-14 08:41 As-before-如初 阅读(303) 评论(0) 推荐(0)