到oracle11G 时,已经有三种方式来固定执行计划了
1.10G以前用的是存储大纲
2.10G多了一种,sql_profile
3.11G又多了sql plan management
今天先讲讲sql_profile
1.先创建一张测试表,
SQL> create table emp as select * from scott.emp;
Table created.
2.选择要固定执行计划的sql语句
这里选择 select * from emp where empno=7521;
SQL> select * from emp where empno=7521;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ------------------------------ --------------------------- ---------- --------------- ---------- ---------- ----------
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
Execution Plan
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 87 | 2 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| EMP | 1 | 87 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("EMPNO"=7521)
Note
-----
- dynamic sampling used for this statement (level=2)
可以看到这里