17.10 - クエリー バンドとセッション レベルのパフォーマンス - 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-1184-171K-JPN
Language
日本語 (日本)

セッション レベルのクエリー バンド リクエストは、トランザクション レベルのクエリー バンド リクエストよりもコストが高くなります。これは、FOR SESSIONオプションにより、querybandDBC.SessionTbl列を更新して、システムの再始動後にリクエストを再始動できるようにするためのオーバーヘッドが追加されるためです。

SET QUERY_BAND FOR SESSIONリクエストのVOLATILEオプションを使用すると、システムの再始動が発生した後にリクエストを再始動できなくなる代わりにリクエストのコストを削減することで、再始動可能性よりもパフォーマンスを優先できます。

たとえば、再始動後にクエリー バンドを復元するためには、SET QUERY_BAND FOR SESSIONリクエストを実行する必要があります。ただし、アクティブなクエリー バンドを復元できることよりもパフォーマンスを優先する場合は、次の構文を使用して、VOLATILEキーワードをSET QUERY_BAND FOR SESSIONリクエストに指定します。

SET QUERY_BAND = 'name=value;' FOR SESSION VOLATILE;

同じSET QUERY_BANDリクエスト内にUPDATEオプションとVOLATILEオプションを両方指定できることに注意してください。SET QUERY_BAND FOR SESSIONリクエストの両方のバージョンを組み合わせて使用することもできます。アプリケーションは、name:valueに保存されているDBC.SessionTblのペアをFOR SESSIONで設定しながら、同時にSET QUERY_BAND UPDATEおよびVOLATILEオプションを使用してリクエストに固有のname:valueのペアを指定できます。再始動時に、VantageはDBC.SessionTblに保存されているクエリー バンドを復元しますが、VOLATILEオプションを使用して設定された、クエリー バンドの名前と値のペアは復元しません。例えば、次のようになります。

SET QUERY_BAND = 'clientuser=x11;group=acct;' FOR SESSION;
SEL ...
SET QUERY_BAND = 'job=a1;' UPDATE FOR SESSION VOLATILE;
INS ...
INS ...
SET QUERY_BAND = 'job=b2;' UPDATE FOR SESSION VOLATILE;
INS ...
INS ...
セッションで再ドライブ保護がアクティブであり、SESSION VOLATILEクエリー バンドが設定されている場合、再ドライブ機能の一部として、再始動後にクエリー バンドが復元されます。これは、アプリケーションに対して非表示になっているデータベースの再始動でのみ行なわれます。再ドライブ保護の詳細については、次を参照してください。
  • Teradata Vantage™ - データベースの管理、B035-1093
  • <Teradata Vantage™ - データベース ユーティリティ、B035-1102>のRedriveProtectionおよびRedriveDefaultParticipation DBS制御フィールド
  • 予約済みの再ドライブ クエリー バンド