文章分类 - DB-Oracle
Oracle-SQL-优化:汇总
摘要:转载自:https://www.modb.pro/db/398986 数据库的调优被分成多个阶段,每个阶段具有不同的调优要点,而高质量、规范SQL的书写却是很多人最初会忽略的地方,但是在实际运维的过程中,很多数据库运行缓慢、延迟、查询性能低乃至宕机等事故、“血案”却可能仅因一条“简单的SQL”导致。
阅读全文
Oracle-SQL-优化:hint 提示:Nested Loop Join 连接全解
摘要:Oracle 中的 Nested Loop Join 是三大核心表连接算法之一,与 Hash Join 和 Sort Merge Join 形成互补。以下从子类型分类、适用场景及对比分析三方面深入解析: 🔍 一、Nested Loop Join
阅读全文
Oracle-SQL-优化:hint 提示:Sort Merge Join 连接全解
摘要:🔧 一、Sort Merge Join的核心分类 1. 标准Sort Merge Join(等值连接) 原理: 对两表按连接键(如 A.id = B.id)分别排序后,通过双指针顺序归并匹配相等键值的行 特点: 严格依赖排序操作,若连接键有索引可跳过排序阶段 适用于等值连接
阅读全文
Oracle-SQL-优化:hint 提示:半连接详解 HASH SEMI JOIN
摘要:“仅需判断是否存在匹配,无需返回子查询的具体数据”是半连接(如 HASH_SJ)的核心特征,其含义是:只关注主表(外表)中的记录是否在子查询(内表)中存在至少一条匹配记录,而无需获取子查询中匹配记录的具体内容。这种操作仅返回主表的记录,且每条记录只返回一次(即使子查询中有多条匹配),子查询的
阅读全文
Oracle-SQL-优化:hint 提示:HASH JOIN 连接全解
摘要:1. 标准哈希连接(HASH JOIN) 提示语法:USE_HASH(table1 table2) 适用场景: 等值连接(Equi-Join):连接条件为=(如ON t1.id = t2.id) 大表关联:适用于两张大表或大小表混合的连接,尤其当表无高效索引时
阅读全文
Oracle-SQL-优化:hint 提示:HASH_AJ 深度解析
摘要:1 HASH_AJ 深度应用 HASH_AJ 提示强制优化器使用 Hash Anti-Join 算法处理 NOT EXISTS/NOT IN 子查询 1.1. 执行计划对比 EXPLAIN PLAN FOR SELECT /*+ HASH_AJ */ * FROM customers c W
阅读全文
Oracle-SQL-优化:hint 提示:UNNEST、NO_UNNEST 深度解析
摘要:Oracle 优化器提示:UNNEST、NO_UNNEST 1 UNNEST 与 NO_UNNEST UNNEST(子查询展开)是 Oracle 优化器处理子查询的核心技术,相关提示用于干预优化器的自动选择。 1.1. 子查询展开原理 -- 未展开的子查询 SELECT * FROM employe
阅读全文
Oracle死事物回滚(转载)
摘要:死事务,一般是事务正在跑的时候,被kill掉了,或者数据库shutdown abort了,那么当数据库再次启动的时候,这些事务就需要做回滚。 可以通过下面的语句查到回滚的事务: select * from v$fast_start_transactions;或者select * from x$ktu
阅读全文
Oracle外键约束的三种删除行为(转载)
摘要:Oracle外键约束的三种删除行为分别是:默认删除(No Action)、级联删除(Cascade)和置空删除(Set Null)。这三种行为定义了当主表(父表)中的记录被删除时,子表中对应外键的处理方式。 1、创建主表及子表并初始化数据 1.1、创建主表t_parent,并插入三条记录 hr@or
阅读全文
Oracle 主库坏块处理案例(一)
摘要:一、现象 ● 在数据库中有一个概念叫做数据块的一致性,Oracle 的数据块的一致性包括了两个层次:物理一致性和逻辑一致性,如果一个数据块在这两个层次上存在不一致性,那就对应到了物理坏块和逻辑坏块。在物理块损坏(也称为媒体损坏)中,数据库根本无法识别该块:校验和无效,块包含全零,块的页眉和页脚不匹配
阅读全文
Oracle-SQL-优化:rownum应用系列之分页查询(一)
摘要:1 rownum 3种用法介绍 rownum这个伪列在SQL中用途广泛,归纳起来大致有3总用法 1)分页查询 rownum<= :b1 and RN>:b2 (rownum不能>) 2)rownum<= :b1 3)rownum=1 或 rownum<=1 ,也是rownum<=:b1的一种特例 我
阅读全文
Oracle 使用rowid抽取数据
摘要:在我们迁移数据,或者进行同步数据的时候,对于应用变更频繁的表进行抽取数据,经常会碰到oracle需要读取回滚段,会导致很慢,有时候甚至会报ora01555错误, 比如我们有个表比较大是40G左右,就是一个月的按月分区数据,这个时候如果想尽快抽取数据到另外一个库,有几种方法: 方法1: 大家都知道的使
阅读全文
浙公网安备 33010602011771号