はじめに
Autonomous Databaseでは、同時実行性や処理の並列度の異なる接続サービスがあらかじめ複数用意されています。
Autonomous Databaseに接続する際は、用意されている接続サービスの内のいずれか一つを選択して接続を行いますが、処理の特性によっては接続後に接続サービスを切り替えて、同時実行性や処理の並列度を変更したいケースがありえます。
今回は、Autonomous Databsaeに接続した状態で接続サービスを切り替える方法を紹介します。
1. Autonomous Databaseへの接続
SQL*PlusからAutonomous Databaseに接続します。
ここでは接続サービスとしてMEDIUMを指定して接続しています。
[opc@swingbench ~]$ sqlplus admin/XXXXXXXXXXXX@atp1_medium
SQL*Plus: Release 21.0.0.0.0 - Production on 月 10月 31 10:51:23 2022
Version 21.7.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
最終正常ログイン時間: 月 10月 31 2022 10:50:59 +09:00
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.17.0.1.0
に接続されました。
SQL>
2. 接続サービスの確認
SYS_CONTEXTファンクションを使用して、接続ユーザと接続サービスを確認します。
SQL> col session_user for a15
SQL> col service_name for a60
SQL> SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') session_user, SYS_CONTEXT('USERENV', 'SERVICE_NAME') service_name FROM DUAL;
SESSION_USER SERVICE_NAME
--------------- ------------------------------------------------------------
ADMIN XXXXXXXXXXXXXXX_DB202204211052_medium.adb.oraclecloud.com
SQL>
adminユーザとして、MEDIUMの接続サービスを使用してAutonomous Databaseに接続していることが確認できました。
3. 接続サービスの切り替え
接続サービスの切り替えには、CS_SESSIONパッケージ内のSWITCH_SERVICEプロシージャを使用します。
EXEC CS_SESSION.SWITCH_SERVICE('接続サービス(HIGH/MEDIUM/LOW/TP/TPURGENT)');
接続サービスをHIGHに切り替えてみます。
SQL> EXEC CS_SESSION.SWITCH_SERVICE('HIGH');
PL/SQLプロシージャが正常に完了しました。
SQL>
SYS_CONTEXTファンクションを使用して、接続サービスを確認してみます。
SQL> SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') session_user, SYS_CONTEXT('USERENV', 'SERVICE_NAME') service_name FROM DUAL;
SESSION_USER SERVICE_NAME
--------------- ------------------------------------------------------------
ADMIN XXXXXXXXXXXXXXX_DB202204211052_high.adb.oraclecloud.com
SQL>
接続サービスがHIGHに変わっていることが確認できました。
接続サービスをLOWに切り替えてみます。
SQL> EXEC CS_SESSION.SWITCH_SERVICE('LOW');
PL/SQLプロシージャが正常に完了しました。
SQL>
SYS_CONTEXTファンクションを使用して、接続サービスを確認してみます。
SQL> SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') session_user, SYS_CONTEXT('USERENV', 'SERVICE_NAME') service_name FROM DUAL;
SESSION_USER SERVICE_NAME
--------------- ------------------------------------------------------------
ADMIN XXXXXXXXXXXXXXX_DB202204211052_low.adb.oraclecloud.com
SQL>
接続サービスがLOWに変わっていることが確認できました。