目的
この制御によって、ユーザーは、LOGONコマンドを次に使用するときに、BTEQがログオンを要求するデータベース セッション数を指定できます。
構文
次のような場合に当てはまります。
- n
- BTEQが実行するセッションの数。
nの最大値は200です。
セッション予約の詳細については、<Teradata TDPリファレンス、B035-2416>の「DISABLE SESSION RESERVE」および「ENABLE SESSION RESERVE」を参照してください。
使用上の注意
SESSIONSコマンドは、LOGONコマンドの前に指定する必要があります。 セッションがログオンされてから、それらのセッションがログオフされるまでの間は、SESSIONSコマンドは受け入れられません。 次回のLOGONコマンドでログオンされるセッション数には、最後のSESSIONSコマンドのセッション数が使用されます。
SESSIONSコマンドを一度も使用していなければ、1つのセッションのみがログオンされます。
複数のセッションを並行して実行するためには、REPEATコマンドまたは=コマンドを使用します。 複数のセッションを使用する場合、リクエストの処理順序は保証されません。 すべてのセッションが同じリクエストを処理し、そのデータのみが異なります。
複数のセッションの実行には、使用中のセッションが実行不可能になった場合にリクエストを再試行できる予備のセッションがある、という利点があります。
REPEATコマンドと共に複数のセッションを実行する場合には、Teradata SQLのDATABASE文の前にセッション数を指定したREPEATコマンドを入力します。また、セッション固有の属性をデータベースで設定する場合は、REPEATコマンドを使用し、各セッションの動作が同じになるようにします。
SHOW CONTROLSコマンドで、nの現在値を表示させることができます。
SESSIONSコマンドは、Teradata SQLマクロでは使用できません。
例1 – SESSIONS
Teradata SQLのINSERTリクエストが必要なだけ繰り返される3つのセッションを並列で実行するためには、次のように指定します。
.SET SESSIONS 3 .LOGON SIA1/KLD .REPEAT 3 DATABASE Workforce; .REPEAT * USING num(SMALLINT) INSERT INTO Department (DeptNo) VALUES (:num) ;
最初のREPEATコマンドで、デフォルトのデータベースがすべてのセッションに設定されます。 2番目のREPEATコマンドは、すべてのデータが挿入されるまで3つのセッションを実行させることを示しています。 最初のREPEATコマンドを指定しない場合、Workforceデータベースを使用するのは最初のセッションだけになります。 他の2つのセッションにはデータベースは設定されません。
例2 – SESSIONS
表名を指定するTeradata SQLコマンドの中にデフォルトのデータベースを指定する場合は、以下の構文を使用します。
.SET SESSIONS 3 .LOGON SIA1/KLD .REPEAT * USING num(SMALLINT) INSERT INTO Workforce.Department (DeptNo) VALUES (:num) ;
この例では、Teradata SQLのINSERT文の中に、テーブル名と共にデフォルトのデータベースWorkforceが指定されています。 この場合は、REPEATコマンドは1つしか必要ではありません。
例3 – SESSIONS
5つのTeradata Databaseセッションを選択する場合は、以下の構文を入力します。
.SET SESSIONS 5 .LOGON SIA1/KLD
BTEQの応答
ログオンの検証後、次のように表示されます。
*** Logon successfully completed. *** 5 sessions logged on. *** Total elapsed time was 7 seconds.
例4 – SESSIONS
REPEATコマンドを使用して、すべてのセッションにセッション固有の属性を定義します。
.SET SESSIONS 4 .LOGON SIA1/KLD .REPEAT 4 SET SESSION CHARACTER SET UNICODE PASS THROUGH ON;
この場合、各セッションに対してデータベースのUPT機能がオンになります。