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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/spp1591731285373.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

この例では、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.