概述
本来是不太想写HINT这篇的,毕竟比较乱,最后想了想还是写了,当做笔记记录在这吧,大家凑合看下咯。
hint的分类
主要分成初始化参数hint,查询转化hint,访问路径hint,连接提示hint,并行处理hint和其他hint
子查询应用范围
简单的 SOL 语句只有一个单独的查询块。当使用视图或类似子查询、内联视图、集合操作 符等结构时, 就会出现多个查询块(比如下面这个例子的查询就有两个查询块,第一个是引用了 dept 表的主查询,第二个是引用了 emp 表的子查询)。
上面总结了 hint的分类,除了第一类初始化参数 hint 外, 所有其他的hint都是仅针对单个查询块起作用。下面来看如何让各个模块的 HINT 生效的各种方法。
1、环境准备:
drop table emp purge;create table emp as select * from scott.emp;create index idx_emp_deptno on emp(deptno);create index idx_emp_empno on emp(empno);drop table dept purge;create table dept as select * from scott.dept;create index idx_dept_deptno on dept(deptno);
2、查看执行计划
set linesize 200set pagesize 500set autotrace traceonlywith emps as (select deptno,count(*) as cnt from emp where empno in (7369,7782,7499) group by deptno) select dept.dname,emps.cnt from dept,emps where dept.deptno=emps.deptno;