|
$ sqlplus hr/hr
SQL> @/opt/oracle/product/9.2.0/rdbms/admin/utlxplan.sql
SQL> alter session set optimizer_mode = rule;
SQL> !cat $HOME/LABS/ptw9i/lab12_02.sql
select *
from employees
where employee_id < '215';
SQL> explain plan for
2 @LABS/ptw9i/lab12_02.sql
Explained.
SQL>
SQL>
SQL> col id format 999
SQL>
SQL> col operation format a20
SQL> col options format a20
SQL> col object_name format a20
SQL> select id,parent_id,operation,options,object_name
2 from plan_table;
ID PARENT_ID OPERATION OPTIONS OBJECT_NAME
---- ---------- -------------------- -------------------- --------------------
0 SELECT STATEMENT
1 0 TABLE ACCESS BY INDEX ROWID EMPLOYEES
2 1 INDEX RANGE SCAN EMP_EMP_ID_PK
µ¿ÀÏÇÑ ¹®ÀåÀÏÁö¶óµµ optimizer mode °¡ ´Þ¶óÁö¸é ½ÇÇà°èȹÀÌ ´Þ¶óÁø´Ù.
rule ÀÎ °æ¿ì emp_emp_id_pk À妽º°¡ »ç¿ëµÇ¾î index range scanÀÌ »ç¿ëµÇ¾úÁö¸¸ optimizer mode °¡ all_rows·Î µÈ °æ¿ì Full Table scan ÀÌ »ç¿ëµÇ¾ú´Ù.
SQL> !cat $HOME/LABS/ptw9i/lab12_04.sql
select /*+ all_rows*/ *
from employees
where employee_id < '215';
SQL>
SQL> explain plan for
2 @LABS/ptw9i/lab12_04.sql
Explained.
SQL>
SQL> select id,parent_id,operation,options,object_name
2 from plan_table;
ID PARENT_ID OPERATION OPTIONS OBJECT_NAME
---- ---------- -------------------- -------------------- --------------------
0 SELECT STATEMENT
1 0 TABLE ACCESS FULL EMPLOYEES
SQL> exit
3. SQL Trace »ç¿ë
$cd $ORACLE_HOME/rdbms/log
$rm *.trc
$ sqlplus sh/sh
SQL> alter session set sql_trace = true;
SQL> !cat $HOME/LABS/ptw9i/lab12_06.sql
select c.cust_last_name, sum(s.amount_sold)
from sales s, customers c
where c.cust_id = s.cust_id
and s.prod_id = '46520'
group by c.cust_last_name;
SQL> @$HOME/LABS/ptw9i/lab12_06.sql
SQL> alter session set sql_trace = false;
SQL> exit
$ cd $ORACLE_HOME/rdbms/log
[human@dbserver udump]$ ls
human_ora_24745.trc
4. Åë°èÁ¤º¸ÀÇ ¼öÁý
-hr/hr ·Î login ÇÑ ´ÙÀ½ hr user schema ¿¡ ÀÖ´Â object ¿¡ ´ëÇÑ Åë°èÁ¤º¸¸¦ ÀúÀåÇÒ table À» »ý¼ºÇÑ´Ù.
$sqlplus hr/hr
SQL> execute dbms_stats.create_stat_table('HR','MY_STATS');
SQL> select * from my_stats;
-hr user schema ¿¡ ÀÖ´Â ¸ðµç object¿¡ ´ëÇÑ Åë°èÁ¤º¸¸¦ dictionary ·Î ºÎÅÍ my_stats¶ó´Â table·Î export
SQL> execute dbms_stats.export_schema_stats('HR','MY_STATS');
SQL> select * from my_stats;
-hr user schema ÀÇ ÇöÀçÀÇ ¸ðµç object¿¡ ´ëÇØ Åë°è¸¦ »ý¼ºÇÏ¿© dictionary¿¡ storeÇÑ´Ù.
SQL> execute dbms_stats.gather_schema_stats('HR');
-dictionary¿¡ storeµÈ hr user schema object¿¡ ´ëÇÑ Åë°èÁ¤º¸¸¦ »èÁ¦ÇÑ ÈÄ ¾Õ¿¡¼ my_stats¿¡ ¶³¾î ¶ß¸° ÀÌÀü Åë°èÁ¤º¸¸¦ dirct¿¡ restore
SQL> execute dbms_stats.delete_schema_stats('HR');
SQL> execute dbms_stats.import_schema_stats('HR','MY_STATS');
SQL> exit
|