CentOSにインストールしたOracle 11g XEでsqlplusでSQLの実行計画を確認する手順です。
サンプルスキーマの作成
サンプルスキーマのscottを作成します。
スクリプトの保管場所が変わったみたいです。
-bash-4.1$ sqlplus system @/u01/app/oracle/product/11.2.0/xe/rdbms/admin/utlsampl.sql SQL*Plus: Release 11.2.0.2.0 Production on 土 11月 3 14:11:37 2012 Copyright (c) 1982, 2011, Oracle. All rights reserved. パスワードを入力してください: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production に接続されました。 Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Productionとの接続が切断されました。 -bash-4.1$
設定
DBA権限でplustrace.sqlで実行することでautotraceに必要なロールが作成されます。
実行計画と統計情報を確認するためのユーザに権限を付与します。
$ sudo su - oracle -bash-4.1$ . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh -bash-4.1$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.2.0 Production on 土 11月 3 00:00:47 2012 Copyright (c) 1982, 2011, Oracle. All rights reserved. Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production に接続されました。 SQL> @/u01/app/oracle/product/11.2.0/xe/sqlplus/admin/plustrce.sql SQL> SQL> drop role plustrace; ロールが削除されました。 SQL> create role plustrace; ロールが作成されました。 SQL> SQL> grant select on v_$sesstat to plustrace; 権限付与が成功しました。 SQL> grant select on v_$statname to plustrace; 権限付与が成功しました。 SQL> grant select on v_$mystat to plustrace; 権限付与が成功しました。 SQL> grant plustrace to dba with admin option; 権限付与が成功しました。 SQL> SQL> set echo off SQL> connect system パスワードを入力してください: 接続されました。 SQL> grant plustrace to scott; 権限付与が成功しました。 SQL>
次に権限を付与したユーザで実行計画および統計情報を保管するためのテーブルを作成します。
SQL> connect scott/tiger 接続されました。 SQL> @/u01/app/oracle/product/11.2.0/xe/rdbms/admin/utlxplan.sql 表が作成されました。 SQL>
実行計画と統計情報の確認
set autotrace onを実行して該当するSQLを実行するとSQLの結果と実行計画、統計情報が表示されます。
SQL> set autotrace on
SQL> r
1* select * from emp
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
7369 SMITH CLERK 7902 80-12-17 800 20
7499 ALLEN SALESMAN 7698 81-02-20 1600 300 30
7521 WARD SALESMAN 7698 81-02-22 1250 500 30
7566 JONES MANAGER 7839 81-04-02 2975 20
7654 MARTIN SALESMAN 7698 81-09-28 1250 1400 30
7698 BLAKE MANAGER 7839 81-05-01 2850 30
7782 CLARK MANAGER 7839 81-06-09 2450 10
7839 KING PRESIDENT 81-11-17 5000 10
7844 TURNER SALESMAN 7698 81-09-08 1500 0 30
7900 JAMES CLERK 7698 81-12-03 950 30
7902 FORD ANALYST 7566 81-12-03 3000 20
7934 MILLER CLERK 7782 82-01-23 1300 10
12行が選択されました。
実行計画
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 12 | 1044 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| EMP | 12 | 1044 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------
Note