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

浙公网安备 33010602011771号