a.创建普通用户:
SQL> create user tj identified by tj
2 default tablespace users
3 temporary tablespace temp
4 quota unlimited on users;
用户已创建。
已用时间: 00: 00: 00.06
SQL> grant create session,create table ,alter session to tj;
授权成功。
已用时间: 00: 00: 00.03
SQL>
SQL> conn tj/tj
已连接。
SQL> set timing on
SQL> set linesize 300
SQL> set pagesize 200
SQL> create table emp(id number,name varchar2(10));
表已创建。
已用时间: 00: 00: 00.00
SQL> insert into emp values(100,'tom');
已创建 1 行。
已用时间: 00: 00: 00.00
SQL> insert into emp values(200,'mike');
已创建 1 行。
已用时间: 00: 00: 00.00
SQL> insert into emp values(300,'jack');
已创建 1 行。
已用时间: 00: 00: 00.00
SQL> insert into emp values(400,'rose');
已创建 1 行。
已用时间: 00: 00: 00.00
已用时间: 00: 00: 00.00
SQL> commit;
提交完成。
已用时间: 00: 00: 00.00
SQL> alter session set optimizer_mode=first_rows;
会话已更改。
已用时间: 00: 00: 00.00
SQL> analyze table emp compute statistics;
表已分析。
已用时间: 00: 00: 00.00
SQL> alter session set optimizer_mode=first_rows;
会话已更改。
SQL> select * from emp where name='tom';
已用时间: 00: 00: 00.00
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 6 | 3 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| EMP | 1 | 6 | 3 (0)| 00:00:01 |
SQL> alter session set optimizer_mode=all_rows;
会话已更改。
已用时间: 00: 00: 00.00
SQL> select * from emp where name='tom';
已用时间: 00: 00: 00.00
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 6 | 3 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| EMP | 1 | 6 | 3 (0)| 00:00:01 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("NAME"='tom')
SQL> create index emp_idx on emp(name);
索引已创建。
已用时间: 00: 00: 00.00
SQL> analyze index emp_idx compute statistics;
索引已分析
已用时间: 00: 00: 00.01
SQL> analyze table emp compute statistics;
表已分析。
已用时间: 00: 00: 00.00
SQL> alter session set optimizer_mode=first_rows;
会话已更改。
已用时间: 00: 00: 00.00
SQL> select * from emp where name='tom';
已用时间: 00: 00: 00.00
执行计划
----------------------------------------------------------
Plan hash value: 1472992808
---------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 6 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 6 | 2 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | EMP_IDX | 1 | | 1 (0)| 00:00:01 |
SQL>
SQL> alter session set optimizer_mode=all_rows;
会话已更改。
已用时间: 00: 00: 00.00
SQL>
SQL> select * from emp where name='tom';
已用时间: 00: 00: 00.00
执行计划
----------------------------------------------------------
Plan hash value: 1472992808
---------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 6 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 6 | 2 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | EMP_IDX | 1 | | 1 (0)| 00:00:01 |
SQL> set autotrace off
SQL> insert into emp select * from emp;
已创建4行。
已用时间: 00: 00: 00.00
SQL>
SQL> /
已创建8行。
已用时间: 00: 00: 00.00
SQL> /
已创建16行。
已用时间: 00: 00: 00.00
SQL> /
已创建32行。
已用时间: 00: 00: 00.00
SQL> /
已创建64行。
已用时间: 00: 00: 00.01
SQL> /
已创建128行。
已用时间: 00: 00: 00.00
SQL> /
已创建256行。
已用时间: 00: 00: 00.00
SQL> /
已创建512行。
已用时间: 00: 00: 00.01
SQL> /
已创建1024行。
已用时间: 00: 00: 00.01
SQL> /
已创建2048行。
已用时间: 00: 00: 00.01
SQL> /
insert into emp select * from emp
*
第 1 行出现错误:
ORA-30036: 无法按 8 扩展段 (在还原表空间 'UNDO2' 中)
已用时间: 00: 00: 00.04
SQL> /
insert into emp select * from emp
*
第 1 行出现错误:
ORA-30036: 无法按 8 扩展段 (在还原表空间 'UNDO2' 中)
已用时间: 00: 00: 00.01
SQL> commit;
提交完成。
已用时间: 00: 00: 00.01
SQL> /
提交完成。
已用时间: 00: 00: 00.01
SQL> insert into emp select * from emp;
已创建4096行。
已用时间: 00: 00: 00.29
SQL> /
insert into emp select * from emp
*
第 1 行出现错误:
ORA-30036: 无法按 8 扩展段 (在还原表空间 'UNDO2' 中)
已用时间: 00: 00: 00.10
SQL> commit;
提交完成。
已用时间: 00: 00: 00.00
SQL> insert into emp select * from emp;
insert into emp select * from emp
*
第 1 行出现错误:
ORA-30036: 无法按 8 扩展段 (在还原表空间 'UNDO2' 中)
已用时间: 00: 00: 00.14
SQL> analyze table emp compute statistics;
表已分析。
已用时间: 00: 00: 00.01
SQL> alter session set optimizer_mode=first_rows;
会话已更改。
已用时间: 00: 00: 00.00
SQL>
SQL> set autot traceonly
SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色
SP2-0611: 启用 STATISTICS 报告时出错
SQL> select * from emp where name='tom';
已用时间: 00: 00: 00.01
执行计划
----------------------------------------------------------
Plan hash value: 1472992808
-----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
-----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2048 | 12288 | 28 (0)|
| 1 | TABLE ACCESS BY INDEX ROWID| EMP | 2048 | 12288 | 28 (0)|
|* 2 | INDEX RANGE SCAN | EMP_IDX | 2048 | | 13 (0)|
-----------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("NAME"='tom')
SQL>
SQL> alter session set optimizer_mode=all_rows;
会话已更改。
已用时间: 00: 00: 00.00
SQL>
SQL> select * from emp where name='tom';
已用时间: 00: 00: 00.00
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2048 | 12288 | 8 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| EMP | 2048 | 12288 | 8 (0)| 00:00:01 |
SQL> alter database orcl datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF' resize 400M;
数据库已更改。
B sys用户下:
SQL>
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
SQL> show parameter optimizer_mode
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
optimizer_mode string ALL_ROWS
SQL>
SQL> show user;
USER 为 "SYS"
增大数据量后:
SQL> select * from emp where name='tom';
已选择1024行。
已用时间: 00: 00: 00.00
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1024 | 6144 | 5 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| EMP | 1024 | 6144 | 5 (0)| 00:00:01 |
SQL> show parameter optimizer_mode
NAME TYPE VALUE
------------------------------------ ----------- -----------
optimizer_mode string ALL_ROWS
SQL> select count(*) from emp;
COUNT(*)
----------
4096
SQL> show user;
USER 为 "SYS"
SQL> drop table emp;
表已删除。
已用时间: 00: 00: 01.14
SQL> create table emp(id number,name varchar2(10));
表已创建。
已用时间: 00: 00: 00.00
SQL> insert into emp values(100,'tom');
已创建 1 行。
已用时间: 00: 00: 00.00
SQL> insert into emp values(200,'mike');
已创建 1 行。
已用时间: 00: 00: 00.00
SQL> insert into emp values(300,'jack');
已创建 1 行。
已用时间: 00: 00: 00.01
SQL> insert into emp values(400,'rose');
已创建 1 行。
已用时间: 00: 00: 00.00
SQL> commit;
提交完成。
已用时间: 00: 00: 00.00
SQL> alter session set optimizer_mode=first_rows;
会话已更改。
已用时间: 00: 00: 00.00
SQL> analyze table emp compute statistics;
表已分析。
已用时间: 00: 00: 00.01
SQL> alter session set optimizer_mode=first_rows;
会话已更改。
已用时间: 00: 00: 00.00
SQL> set autotrace trace exp
SQL> select * from emp where name='tom';
已用时间: 00: 00: 00.00
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 6 | 2 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| EMP | 1 | 6 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("NAME"='tom')
SQL>
SQL> alter session set optimizer_mode=all_rows;
会话已更改。
已用时间: 00: 00: 00.01
SQL> select * from emp where name='tom';
已用时间: 00: 00: 00.00
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 6 | 2 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| EMP | 1 | 6 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("NAME"='tom')
SQL> create index emp_idx on emp(name);
索引已创建。
已用时间: 00: 00: 00.01
SQL> analyze index emp_idx compute statistics;
索引已分析
已用时间: 00: 00: 00.00
SQL> analyze table emp compute statistics;
表已分析。
已用时间: 00: 00: 00.00
SQL> alter session set optimizer_mode=first_rows;
会话已更改。
已用时间: 00: 00: 00.01
SQL> select * from emp where name='tom';
已用时间: 00: 00: 00.00
执行计划
----------------------------------------------------------
Plan hash value: 1472992808
-------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Ti
-------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 6 | 2 (0)| 00
| 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 6 | 2 (0)| 00
|* 2 | INDEX RANGE SCAN | EMP_IDX | 1 | | 1 (0)| 00
-------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("NAME"='tom')
SQL>
SQL> alter session set optimizer_mode=all_rows;
会话已更改。
已用时间: 00: 00: 00.00
SQL>
SQL> select * from emp where name='tom';
已用时间: 00: 00: 00.00
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 6 | 2 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| EMP | 1 | 6 | 2 (0)| 00:00:01 |
SQL> show user;
USER 为 "SYS"
SQL> set autot off
SQL> select count(*) from emp;
COUNT(*)
----------
4
C HINT:
表较大:
SQL> show user;
USER 为 "TJ"
SQL> alter session set optimizer_mode=all_rows;
会话已更改。
SQL> select/*first_rows*/ name from emp;
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 8192 | 32768 | 8 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| EMP | 8192 | 32768 | 8 (0)| 00:00:01 |
--------------------------------------------------------------------------
SQL> select /*first_rows*/ name from emp where name='tom';
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2048 | 8192 | 8 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| EMP | 2048 | 8192 | 8 (0)| 00:00:01 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("NAME"='tom')
SQL> select /*all_rows*/ name from emp ;
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 8192 | 32768 | 8 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| EMP | 8192 | 32768 | 8 (0)| 00:00:01 |
--------------------------------------------------------------------------
SQL> select /*all_rows*/ name from emp where name='tom';
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2048 | 8192 | 8 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| EMP | 2048 | 8192 | 8 (0)| 00:00:01 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("NAME"='tom')
SQL>
SQL>
SQL> alter session set optimizer_mode=first_rows;
会话已更改。
SQL> select/*first_rows*/ name from emp;
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 8192 | 32768 | 8 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| EMP | 8192 | 32768 | 8 (0)| 00:00:01 |
--------------------------------------------------------------------------
SQL> select /*first_rows*/ name from emp where name='tom';
执行计划
----------------------------------------------------------
Plan hash value: 3087982339
----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2048 | 8192 | 13 (0)| 00:00:01 |
|* 1 | INDEX RANGE SCAN| EMP_IDX | 2048 | 8192 | 13 (0)| 00:00:01 |
----------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - access("NAME"='tom')
SQL> select /*all_rows*/ name from emp ;
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 8192 | 32768 | 8 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| EMP | 8192 | 32768 | 8 (0)| 00:00:01 |
--------------------------------------------------------------------------
SQL> select /*all_rows*/ name from emp where name='tom';
执行计划
----------------------------------------------------------
Plan hash value: 3087982339
----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2048 | 8192 | 13 (0)| 00:00:01 |
|* 1 | INDEX RANGE SCAN| EMP_IDX | 2048 | 8192 | 13 (0)| 00:00:01 |
----------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - access("NAME"='tom')
SQL>
SQL> set autot off
SQL> select count(*) from emp;
COUNT(*)
----------
8192
表很小:
SQL> alter session set optimizer_mode=all_rows;
会话已更改。
SQL>
SQL> select * from emp where name='tom';
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 6 | 2 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| EMP | 1 | 6 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("NAME"='tom')
SQL> select/*first_rows*/ name from emp;
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 4 | 16 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| EMP | 4 | 16 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------
SQL> select /*first_rows*/ name from emp where name='tom';
执行计划
----------------------------------------------------------
Plan hash value: 3087982339
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 4 | 1 (0)| 00:00:01
|* 1 | INDEX RANGE SCAN| EMP_IDX | 1 | 4 | 1 (0)| 00:00:01
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - access("NAME"='tom')
SQL> select /*all_rows*/ name from emp ;
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 4 | 16 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| EMP | 4 | 16 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------
SQL> select /*all_rows*/ name from emp where name='tom';
执行计划
----------------------------------------------------------
Plan hash value: 3087982339
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 4 | 1 (0)| 00:00:01
|* 1 | INDEX RANGE SCAN| EMP_IDX | 1 | 4 | 1 (0)| 00:00:01
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - access("NAME"='tom')
SQL>
SQL>
SQL> alter session set optimizer_mode=first_rows;
会话已更改。
SQL> select/*first_rows*/ name from emp;
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 4 | 16 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| EMP | 4 | 16 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------
SQL> select /*first_rows*/ name from emp where name='tom';
执行计划
----------------------------------------------------------
Plan hash value: 3087982339
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 4 | 1 (0)| 00:00:01
|* 1 | INDEX RANGE SCAN| EMP_IDX | 1 | 4 | 1 (0)| 00:00:01
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - access("NAME"='tom')
SQL> select /*all_rows*/ name from emp ;
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 4 | 16 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| EMP | 4 | 16 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------
SQL> select /*all_rows*/ name from emp where name='tom';
执行计划
----------------------------------------------------------
Plan hash value: 3087982339
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 4 | 1 (0)| 00:00:01
|* 1 | INDEX RANGE SCAN| EMP_IDX | 1 | 4 | 1 (0)| 00:00:01
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - access("NAME"='tom')
SQL>
SQL>
SQL> set autot off
SQL> show parameter optimizer_mode;
NAME TYPE VALUE
------------------------------------ ----------- -------------------------
optimizer_mode string FIRST_ROWS
SQL> select count(*) from emp;
COUNT(*)
----------
4
二,ALL_ROWS下的INDEX FAST FULL SCAN
http://space.itpub.net/519536/viewspace-619516
从此链接摘录重要片段如下(from Secooler 快乐的DBA
copy Bookmark http://space.itpub.net/519536
):
通过一个实验看一下两种优化模式下的执行计划的不同之处。
1.默认情况下,数据库采用ALL_ROWS模式。
sec@ora10g> show parameter optimizer_mode
NAME TYPE VALUE
------------------- -------------------- -----------------
optimizer_mode string ALL_ROWS
2.创建千万级别的测试表t,开启autotrace,查看一下默认ALL_ROWS模式下的执行计划。
sec@ora10g> set autot trace explain
sec@ora10g> select t1.x, t2.x from t t1, t t2 where t1.x = t2.x and t1.owner='SEC';
Execution Plan
----------------------------------------------------------
Plan hash value: 2371815244
--------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
--------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 99695 | 2823K| | 43627 (1)| 00:08:44 |
|* 1 | HASH JOIN | | 99695 | 2823K| 3408K| 43627 (1)| 00:08:44 |
|* 2 | TABLE ACCESS FULL | T | 99695 | 2239K| | 29985 (1)| 00:06:00 |
| 3 | INDEX FAST FULL SCAN| PK_T | 9969K| 57M| | 4871 (2)| 00:00:59 |
---------------------------------------------------------------------------------
Conclusion:
1 普通用户下和sys用户下ALL_ROWS下的行为有区别
2 ALL_ROWS下不全是fts,有可能是ffs和irs
3 HINT ??
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE-----------end--------------
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13750068/viewspace-723363/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13750068/viewspace-723363/

被折叠的 条评论
为什么被折叠?



