Oracle function result cache优化
以前没有function result cache,要实现类似效果,自定义函数比如是DETERMINISTIC并且建立函数索引,走索引才行, 当然,如果函数改变,但是索引未rebuild,则索引里存的函数值还是不变的,必须rebuild索引。 使用result cache,ORACLE会自动跟踪变化
Oracle distinct/group如何实现分页消除排序stopkey裁剪
distinct/group by的分页,要先消除order by排序,然后还要消除distinct/group by排序才能count stop key,用hash group by不行,必须 sort group by nosort才可以
Oracle Outer Join里on和where区别详解
ON是外连接关联条件,WHERE是主表过滤或访问条件,主表是先执行WHERE,然后执行ON
Oracle,MySQL,PG三大库JOIN算法及其优化
oracle的nested loops semi/anti包括Filter,隐式的Filter如标量子查询,有subquery cache,内部构建hash表,实现缓存优化 而MySQL只有非相关子查询且没有unnest走Filter的,然后子查询走materialization的才有subquery cache。 pg的子查询没有subquery cache,只有普通nested loops join才有memorize(也是cache), 可以使用lateral join,也可以改成普通join,但是必须走nested loops才行。
Oracle CBO里的First Match思想及三大JOIN算法
主要是在semi join/anti join里使用,不管是nested loops,还是hash join,sort merge join,只要走semi join/anti join都有 first match思想,这是一种“短路”算法,快速裁剪,类似加个rownum=1(但是得注意,如果你手动加rownum=1, oracle数据库则子查询不能unnest,pg,mysql可以,所以,CBO自己能处理,就不要“画蛇添足”),
第62期 Oracle通过DBA_HIST_SQLSTAT 追踪SQL历史性能问题
DBA_HIST_SQLSTAT 是 Oracle AWR(自动负载仓库)中记录 SQL 执行统计历史的核心视图,保存了被采样的 SQL 在各快照区间的性能数据。所有指标都分 _TOTAL(实例启动以来累计) 和 _DELTA(快照区间增量) 两类。配合 AWR 快照,精准定位慢 SQL、分析性能趋势、溯源性能抖动、做 SQL 优化复盘,生产 DBA 日常高频用法。下面介绍一下这个DBA_HIST
Oracle数据库锁机制概述
Oracle数据库锁机制概述
Oracle SQL性能抖动排查与处理总结
按照SQL性能=cpu time+wait time,考虑执行计划突变,有多种原因,统计信息收集错,谓词条件out of range统计信息,灌入大量数据未收集,分区表灌数据收集时机不对,条件倾斜,数据量变化,绑定变量peeking问题,DML影响一致性块重构导致逻辑读增加,数据从buffer cache刷出,表和索引碎片增加,索引失效以及优化器BUG,ACS,cardinality feedback,dynamic sampling等影响执行计划。
oracle latch,mutex,enqueue内部结构区别详解
oracle latch,mutex,enqueue内部结构区别详解
ORACLE SQL TUNING全流程解析
oracle sql tuning如何从获取TOP 语句到开始优化,需要的优化工具,优化方法等全流程,做详细讲解
ORACLE VS MySQL MVCC
MySQL的MVCC实现决定了它对长事务极度敏感,而Oracle的块级重构架构使其更具韧性。
oracle,mysql, pg hash join显示顺序区别
hash join最好以树形计划为准,对于pg和mysql,树形会将probe table写在hash table前面,hash table有Hash标志,而oracle会将hash table写在前面
Oracle数据库数据并发性和一致性概述
Oracle数据库数据并发性和一致性概述
Oracle log file sync等待事件解析
log file sync等待事件是衡量Oracle数据库事务响应延迟的关键指标。 它指的是当一个用户会话(前台进程)发起COMMIT或ROLLBACK操作后,必须等待LGWR(日志写入器)后台进程将该会话产生的重做日志从日志缓冲区(Log Buffer) 成功写入在线重做日志文件(Online Redo Log),并且(在特定架构下)完成必要的全局同步后,才会收到操作成功的确认。这个从发起请求到收到确认的整个等待时间,就是log file syn
Oracle latch free等待原理及优化方法
Oracle Latch Free 等待是数据库内部内存结构保护机制的核心体现,理解其原理对诊断高并发场景的性能瓶颈至关重要。
oracle DBMS_SYSTEM.KSDWRT 详解
DBMS_SYSTEM.KSDWRT 是 Oracle 内部包中的过程,用于向 告警日志(alert log)或跟踪文件 写入自定义消息。
Oracle Adaptive Log File Sync 问题
Oracle 11g 的 Adaptive Log File Sync 特性在 11.2.0.3 版本中默认开启后,确实带来了一系列严重的性能问题,这也是业界普遍建议关闭该参数的根本原因
理解Oracle执行计划里的E-Rows 和A-Rows
在Oracle执行计划中,E-Rows 和 A-Rows 是评估SQL性能的两个核心指标,它们分别代表了优化器的“预估值”和SQL运行时的“实际值”。
Oracle数据库中的Java概述
Oracle数据库中的Java概述
Oracle buffer busy waits等待事件解决方案
buffer busy waits通常是由于多个进程同时访问同一个buffer block导致的争用,尤其是在高并发的情况下。而read by other session则是在等待另一个会话正在从磁盘读取相同的数据块到buffer cache中。在RAC环境中,gc buffer busy acquire和release则涉及到跨实例的块访问争用,可能由热点块、网络延迟或Oracle Bug引起。