《基于ORACLE SQL优化》读书笔记
来源:互联网 发布:mac 搭建代理服务器 编辑:程序博客网 时间:2024/06/03 20:34
注:为读《基于ORACLE SQL优化笔记》
对比RBO 与CBO 在数据选择性不佳的情况下,对执行路径的选择。
select * from emp where mgr = 7902;
1. 骗下优化器,修改表和索引统计信息
2. CBO 对 上面语句选择FULLTABLE SCAN;
3. RBO还是走索引。
数据准备:
CREATE TABLE EMP(EMPNO NUMBER(4) NOT NULL,ENAMEVARCHAR2(10),JOB VARCHAR2(9),MGR NUMBER(4),HIREDATE DATE,SAL NUMBER(7, 2),COMMNUMBER(7, 2),DEPTNO NUMBER(2));INSERT INTO EMP VALUES(7369, 'SMITH', 'CLERK',7902,TO_DATE('17-DEC-1980', 'DD-MON-YYYY'), 800, NULL, 20);INSERT INTO EMP VALUES(7499, 'ALLEN', 'SALESMAN',7698,TO_DATE('20-FEB-1981', 'DD-MON-YYYY'), 1600, 300, 30);INSERT INTO EMP VALUES(7521, 'WARD', 'SALESMAN',7698,TO_DATE('22-FEB-1981', 'DD-MON-YYYY'), 1250, 500, 30);INSERT INTO EMP VALUES(7566, 'JONES', 'MANAGER',7839,TO_DATE('2-APR-1981', 'DD-MON-YYYY'), 2975, NULL, 20);INSERT INTO EMP VALUES(7654, 'MARTIN', 'SALESMAN',7698,TO_DATE('28-SEP-1981', 'DD-MON-YYYY'), 1250, 1400, 30);INSERT INTO EMP VALUES(7698, 'BLAKE', 'MANAGER',7839,TO_DATE('1-MAY-1981', 'DD-MON-YYYY'), 2850, NULL, 30);INSERT INTO EMP VALUES(7782, 'CLARK', 'MANAGER',7839,TO_DATE('9-JUN-1981', 'DD-MON-YYYY'), 2450, NULL, 10);INSERT INTO EMP VALUES(7788, 'SCOTT', 'ANALYST',7566,TO_DATE('09-DEC-1982', 'DD-MON-YYYY'), 3000, NULL, 20);INSERT INTO EMP VALUES(7839, 'KING', 'PRESIDENT',NULL,TO_DATE('17-NOV-1981', 'DD-MON-YYYY'), 5000, NULL, 10);COMMIT;ALTER TABLE EMP MODIFY (MGR NOT NULL);CREATE INDEX IDX_EMP_MGR ON EMP(MGR);set autotrace on
--修改表统计信息
EXEC dbms_stats.set_table_stats(ownname=>'tester',tabname=>'EMP',numrows =>1000000,no_invalidate =>false);
--修改索引统计信息
EXEC dbms_stats.set_index_stats(ownname=>'tester',indname=>'IDX_EMP_MGR',numlblks =>100000,no_invalidate=>false);
--默认CBO:
select * from emp where mgr = 7902;
--当前 SESSION 改为RBO:
Alter session set optimizer_mode =rule;select * from emp where mgr = 7902;
0 0
- 《基于ORACLE SQL优化》读书笔记
- 《基于ORACLE SQL优化》读书笔记-CBO局限性
- 《基于ORACLE SQL优化》读书笔记-CURSOR
- 《基于ORACLE SQL优化》读书笔记-游标
- 读书笔记-《基于Oracle的SQL优化》-第一章-1
- 读书笔记-《基于Oracle的SQL优化》-第一章-2
- 读书笔记-《基于Oracle的SQL优化》-第一章-3
- 读书笔记-《基于Oracle的SQL优化》-第二章-1
- 《基于ORACLE SQL优化》读书笔记-可传递性
- 《基于ORACLE SQL优化》读书笔记-访问索引的方法
- 《基于ORACLE SQL优化》读书笔记-表的连接类型
- 《基于ORACLE SQL优化》读书笔记-表的连接方式
- 《基于ORACLE SQL优化》读书笔记-查看执行计划
- 《基于ORACLE SQL优化》读书笔记-位图索引执行计划
- 《基于ORACLE SQL优化》读书笔记-特殊执行计划
- 《基于ORACLE SQL优化》读书笔记-使用SPM稳定执行计划
- 《基于ORACLE SQL优化》读书笔记-使用SQL PROFILE锁定执行计划
- Oracle性能优化读书笔记(2)-SQL语句和索引优化
- java匿名内部类
- 动态加载
- qml基本语法
- win7 java 无法启动 提示jar中发现未签名条目
- Unity的应用及三层代码
- 《基于ORACLE SQL优化》读书笔记
- MapReduce Sort
- JavaScript入门之算术运算符和关系运算符
- SPOJ HUBULLU
- android中dip、dp、px、sp和屏幕密度
- 续:用匿名内部类实现多线程的一小段代码
- Nodejs源码的阅读-事件循环的建立
- 后缀数组应用(最长重复子字符串)
- hdu2807(floyd +快速矩阵计算)