17.10 - 例: FOR SESSION VOLATILEを使用したクエリー バンドの設定 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-171K-JPN
Language
日本語 (日本)

この例では、FOR SESSION VOLATILEクエリー バンドを設定します。これにより、このクエリー バンド セットの目的を検証し、FOR SESSION VOLATILEを指定したときにVantageDBC.SessionTblを更新しないことを示します。こうすることで、FOR SESSIONリクエストのパフォーマンスがFOR TRANSACTIONリクエストのパフォーマンスと同程度に向上します。

     SET QUERY_BAND = 'city=laquinta;cat=asta;tree=maple;' 
     FOR SESSION VOLATILE;
      *** Set QUERY_BAND accepted. 
      *** Total elapsed time was 1 second.

この時点でクエリー バンドは'city=laquinta;cat=asta;tree=maple;'になります。次のプロシージャ呼び出しで、これを示します。

     CALL syslib.GetQueryBandSP(qb);
      *** Procedure has been executed. 
      *** Total elapsed time was 1 second.
     QueryBand
     -----------------------------------------------------------------
     =S> city=laquinta;cat=asta;tree=maple;

SELECTリクエストは、DBC.SessionTblに行が存在しないことを示します。これは、FOR SESSION VOLATILEを指定したときの目的どおりの結果です。

     SELECT queryband 
     FROM DBC.SessionTbl 
     WHERE queryband IS NOT NULL 
     AND   CHAR_LENGTH(queryband) > 0;
*** Query completed. No rows found. 
*** Total elapsed time was 1 second.