6.3.7.4 SQL実行計画を使用したスマートI/Oの監視
SQL EXPLAIN PLAN
コマンドは、SQL実行計画のスマートI/O最適化に関する情報を表示します。
EXPLAIN PLAN
コマンドを使用すると、ストレージ・サーバーにオフロードできるSQL問合せの一部を識別できます。SQL実行計画のスマートI/O最適化を表示するには、EXPLAIN PLAN
コマンドのデータベース・パラメータCELL_OFFLOAD_PLAN_DISPLAY
をAUTO
またはALWAYS
に設定する必要があります。
例6-5 SQL実行計画を使用したスマートI/Oの監視
この例は、EXPLAIN PLAN
コマンドを使用して、SQL実行計画のスマートI/O最適化を表示する方法を示しています。
問合せ計画では、TABLE ACCESS STORAGE FULL
操作は、対応する全表スキャンがストレージ・サーバーにオフロードされることを示します。条件情報には、ストレージ・サーバーにオフロードされる問合せ条件の詳細が示されます。
SQL> ALTER SESSION SET CELL_OFFLOAD_PLAN_DISPLAY = ALWAYS;
Session altered.
SQL> EXPLAIN PLAN FOR
SELECT t.prod_id, v.exp1, t2_prod_id, t2_amount_sold
FROM sales t, v1 v
WHERE t.prod_id = v.prod_id AND t.cust_id = v.cust_id
AND t.prod_id != 45
AND v.amount_sold * v.quantity_sold > 10000;
Explained.
SQL> SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY());
PLAN_TABLE_OUTPUT
---------------------------------------------------------------------------------------------------
Plan hash value: 2267424675
--------------------------------------------------
| Id | Operation | Name |
--------------------------------------------------
| 0 | SELECT STATEMENT | |
|* 1 | HASH JOIN | |
|* 2 | HASH JOIN | |
|* 3 | TABLE ACCESS STORAGE FULL| SALES |
|* 4 | TABLE ACCESS STORAGE FULL| SALES |
|* 5 | TABLE ACCESS STORAGE FULL | SALES |
--------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - access("T"."CUST_ID"="T2"."CUST_ID" AND
"T1"."PROD_ID"="T2"."PROD_ID" AND "T1"."CUST_ID"="T2"."CUST_ID")
2 - access("T"."PROD_ID"="T1"."PROD_ID")
3 - storage("T1"."PROD_ID"<200 AND
"T1"."AMOUNT_SOLD"*"T1"."QUANTITY_SOLD">10000 AND "T1"."PROD_ID"<>45)
filter("T1"."PROD_ID"<200 AND
"T1"."AMOUNT_SOLD"*"T1"."QUANTITY_SOLD">10000 AND "T1"."PROD_ID"<>45)
4 - storage("T"."PROD_ID"<200 AND "T"."PROD_ID"<>45)
filter("T"."PROD_ID"<200 AND "T"."PROD_ID"<>45)
5 - storage("T2"."PROD_ID"<200 AND "T2"."PROD_ID"<>45)
filter("T2"."PROD_ID"<200 AND "T2"."PROD_ID"<>45)
親トピック: スマートI/Oの監視