キュー テーブルでのSQL操作 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

以下の表に示すように、SQLインターフェースは、キュー テーブルでのFIFO push、pop、およびpeek操作をサポートします。

FIFO操作 サポートするSQL文
push INSERT。
pop SELECT AND CONSUME TOP 1。
peek SELECT。

2つの形式のSELECT文によって実行される異なる操作モードは、それぞれCONSUMEモードおよびブラウズ モードと呼ばれます。キュー テーブルではCONSUMEモードのSELECT文と共にPERCENTオプションもWITH TIESオプションも使用できないので、注意が必要です。さらに、TOP n指定のnの値として1を常に指定する必要があります(1しか指定できません)。Teradata Vantage™ - SQLデータ操作言語、B035-1146を参照してください。

SELECTの形式 キュー テーブルに対して実行される機能
SELECT AND CONSUME TOP 1 consume
SELECT browse

明示的に他の順序で配列されていなければ、CONSUMEモードの行はFIFOの順序です(キュー テーブルの行の配列を参照)。一方、ブラウズ モードの行では、ORDER BY句などの標準のSQL配列メカニズムが使用されます。

Teradata Databaseは、キュー テーブルの埋め込みSQL処理のために以下のDML文をサポートします。
  • DELETE
  • INSERT
  • MERGE
  • SELECT
  • SELECT AND CONSUME
  • UPDATE

SELECT AND CONSUMEは、位置決めされたカーソルについてはサポートされてないことに注意してください。すべてのANSIモード カーソルはデフォルトで位置決めされたカーソルなので、CONSUMEモードのSELECT文は、ANSIセッション モードでは使用できません。詳細は、<Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL、B035-1148>および<Teradata® Preprocessor2 for Embedded SQLプログラマ ガイド、B035-2446>を参照すること。

Teradata Databaseは、以下のすべての形式の埋め込みSQLに対して、キュー テーブルDMLサポートを提供します。
  • 静的
  • 動的
  • 静的カーソル
  • 動的カーソル

原則として、DELETE、MERGE、およびUPDATE文をキュー テーブルに対して頻繁に実行しないでください。これらの操作はテーブルの項目のFIFOキャッシュを破壊するためです。その結果、FIFOキャッシュを再構築するために次回アクセスするときに、Teradata Databaseはテーブルのフル テーブル スキャンを実行する必要があります。

その代わりに、これらの文は例外処理で使用するために残しておいてください。

これらの文をキュー テーブルに対して使用する方法の詳細については、<Teradata Vantage™ - SQLデータ操作言語、B035-1146>および<Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL、B035-1148>を参照してください。

キュー テーブルはデータベース内の持続するデータベース オブジェクトなので、トランザクションの基本Teradata機能が提供されます。他のデータベース トランザクションと同様に、キュー テーブル トランザクションには原子性、一貫性、隔離性、および持続性のACID特性があります。Teradataトランザクションの詳細については、<Teradata Vantage™- SQLリクエストおよびトランザクション処理、B035-1142>を参照してください。