
oracle optimizer statistics
数据库人生
专注于数据库
PostgreSQL;Oracle 11G OCA、OCP;OceanBase V2 OBCA、OBCP
展开
-
oracle 优化器模式 optimizer_mode
os: centos 7.4db: oracle 11.2.0.4版本# cat /etc/centos-releaseCentOS Linux release 7.4.1708 (Core) # # su - oracleLast login: Tue Jan 21 03:40:05 CST 2020 on pts/0$ sqlplus / as sysdba;SQL*Plu...原创 2020-02-21 16:44:49 · 1258 阅读 · 0 评论 -
oracle invisible index 的探索
os: centos 7.4db: oracle 11.2.0.4oracle 从 11g 开始提供 invisible index 索引,这对线上系统添加索引引起的性能异常提供了可控的方法。准备表-- drop table tmp_t0 purge;create table tmp_t0asselect *from dba_objectswhere 1=1;inser...原创 2019-12-26 11:30:59 · 660 阅读 · 0 评论 -
oracle 优化器走出 merge join cartesian 导致的超长执行时间
os: oracle 11.2.0.4抓取线上系统一个慢sql分析时,发现执行计划里有 merge join cartesian。根据以往经验,大概率为不合理的执行计划,详细分析表之间的关联时,发现确实会导致超大结果集后再和其它表关联hint通过添加 hint 调整select /*+ ordered use_nl(a b) */修改 _optimizer_mjc_enableda...原创 2019-11-03 19:22:03 · 1711 阅读 · 0 评论 -
oracle 11g 使用 DBMS_AUTO_TASK_ADMIN.DISABLE 禁止自动运行
查看默认情况下自动运行的三个 jobSQL> set lines 200;set pages 200;col client_name format a40;col status format a20;SQL>SQL> select client_name,status from dba_autotask_client;CLIENT_NAME ...原创 2019-10-26 15:54:33 · 2198 阅读 · 0 评论 -
oracle 并行之二: parallel dml
os: centos 7.4db: oracle 12.1.0.2insert,update,delete,merge 的dml操作都可以开启并行,多个会话同时执行,同时每个会话(并发进程)都有自己的undo段,都是独立的一个事务,这些事务要么由pdml协调器进程提交,要么都rollback。在一个有充足I/o带宽的多cpu主机中,对于大规模的dml,速度会有很大的提升,尤其是在大型的数据仓...原创 2019-10-25 18:53:08 · 4553 阅读 · 3 评论 -
oracle 并行之一: parallel query
os: centos 7.4db: oracle 12.1.0.2版本# cat /etc/centos-releaseCentOS Linux release 7.4.1708 (Core) # # cat /proc/cpuinfo |grep -i "processor"processor : 0processor : 1processor : 2processor :...原创 2019-10-25 18:02:14 · 462 阅读 · 0 评论 -
oracle 常用的 hints
use_nlleadingselect /*+ use_nl(a,b) leading(a) */ from tmp_t0 a, tmp_t1 b where 1=1 and a.id=b.id;gather_plan_statisticsselect /*+ gather_plan_statistics */ from tmp_t0 a, ...原创 2019-10-23 22:57:31 · 1329 阅读 · 0 评论 -
dbms_stat 采集统计信息状态为 stale 的 table、partition table
db: oracle 12.2.0.1declare lv_user varchar(100);begin dbms_stats.flush_database_monitoring_info(); --采集该用户下对象的统计信息 lv_user:='SCOTT'; --非分区表 for c_part in ( ...原创 2019-10-12 15:27:33 · 765 阅读 · 0 评论 -
gc buffer busy acquire 、gc buffer busy release
os: centos 7.6db: oracle 19.3 rac业务系统做压测时发现 gc buffer busy acquire 和 gc buffer busy release 比较突出.查看 awr 报告的 Global Current Server Statistics => Flushes 时,要注意小于 5ms 的才算正常查看 awr 报告的 Global Cache...原创 2019-08-16 17:42:44 · 1346 阅读 · 0 评论 -
buffer busy waits
os: centos 7.6db: oracle 19.3使用 swingbench 做的10G数据量压测,然后查看 AWR 报表时,分析一下 Top 10 Foreground Events by Total Wait Time.buffer busy waits10.3.2 buffer busy waitsThis wait indicates that there ar...原创 2019-06-13 09:45:17 · 749 阅读 · 0 评论 -
oracle owi 之 log file sync
os: centos 7.6db: oracle 19.3使用 swingbench 做的10G数据量压测,然后查看 AWR 报表时,分析一下 Top 10 Foreground Events by Total Wait Time.log file sync这个等待事件靠前基本说明两点:commit 太频繁disk io 不行改进方法对应为commit 提交方式改...原创 2019-06-13 08:29:59 · 685 阅读 · 0 评论 -
dbms_stat 采集统计信息
dbms_stat 是oracle database 采集统计信息的集成工具。非常方便和高效。备份创建stat_tablebegin dbms_stats.create_stat_table( ownname => 'drp', stattab => 'stat_table' ) ; end;导出整个scheme...原创 2018-04-12 14:21:28 · 909 阅读 · 0 评论