データベース操作の作成
DBMS_SQL_MONITOR
パッケージ・サブプログラムを使用して、コンポジット・データベース操作を作成できます。
次の例では、DBOP_EXAMPLE
という名前のデータベース操作を作成します。例では、データベース操作を開始します。顧客ごと、都市ごとに最大売上高を選択するPL/SQLプロシージャがあります。次に、2人以上の顧客がいる都市のすべての顧客の最大売上高を選択するSQL文があります。最後に、データベース操作を終了します。
例5-1 データベース操作の作成
VAR eid NUMBER EXEC :eid := DBMS_SQL_MONITOR.BEGIN_OPERATION('DBOP_EXAMPLE'); declare -- v1 number; -- CURSOR c1 IS SELECT cust_city FROM (SELECT COUNT(*) cnt, cust_city FROM sh.customers GROUP BY cust_city ORDER BY 1 desc); -- BEGIN FOR i IN c1 LOOP -- v1 := 0; -- SELECT MAX(amount_sold) INTO v1 FROM sh.sales WHERE cust_id IN (select cust_id FROM sh.customers WHERE cust_city=i.cust_city); -- DBMS_OUTPUT.PUT_LINE('Amount: '||v1); -- END LOOP; -- END; / SELECT MAX(asld) FROM (SELECT MAX(amount_sold) asld, cust_id FROM sh.sales WHERE cust_id IN (SELECT cust_id FROM sh.customers WHERE cust_city IN (SELECT cust_city FROM (SELECT count(*) cnt, cust_city FROM sh.customers GROUP BY cust_city HAVING COUNT(*) > 1) )) GROUP BY cust_id) / EXEC DBMS_SQL_MONITOR.END_OPERATION('DBOP_EXAMPLE',:eid);
ノート:
Oracle Database19c以降では、管理権限のないデータベース・ユーザーは、DBMS_SQL_MONITOR
パッケージ・サブプログラムを使用してコンポジット・データベース操作を作成し、Cloud Controlの「監視されたSQL実行」ページにナビゲートすることで、実行計画やパフォーマンス・メトリックを含む、それらの操作のSQL実行の詳細を表示することもできます。
参照:
-
APIを使用したデータベース操作の監視の詳細は、『Oracle Database SQLチューニング・ガイド』を参照してください。
-
DBMS_SQL_MONITOR
パッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。