17.10 - 例: SQL要求 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データベース入門

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
ユーザー ガイド
Publication ID
B035-1091-171K-JPN
Language
日本語 (日本)

例として、銀行当座預金情報を含む表を使用する、以下のTeradata SQL要求について考えてみましょう。この例では、AcctNo 列がTable_01 の固有基本索引であるものと仮定しています。Teradata Databaseで使用される索引のタイプについては、データ分散とデータ アクセスの方法を参照してください。

   1. SELECT * FROM Table_01 WHERE AcctNo = 129317 ;
   2. SELECT * FROM Table_01 WHERE AcctBal > 1000 ;
ここでは、次のように仮定します。
  • PE 1とPE 2がそれぞれ要求1と要求2を受け取る。
  • 口座129317のデータは、AMP1に格納されている行R9に入っている。
  • すべての勘定残高に関する情報が、4つの全AMP間に均等に分散されている。

上記のSQL文は、次の手順で処理されます。

  1. PE 1は、その要求が基本索引検索であり、特定の1行へのアクセスとその行の返信を要求していると判断する。
  2. PE 1のディスパッチャは、該当する読み取りステップとR9/AMP 1の経路指定情報を含んだメッセージをBYNETへ送る。AMP 1から該当する行が返ってきたら、PE 1はそのデータをクライアントへと転送する。
  3. PE 2の構文解析プログラムは、これが全AMP要求であると判断して、該当する読み取りステップを含むメッセージをBYNETに送る。これらのメッセージは、全AMPに同時に送られる。
  4. AMPから結果が返ってきたら、PE 2はそのデータをクライアントへと転送する。

AMPのステップは、次の手順で処理されます。

  1. ロック - 同時アクセスによってデータの一貫性が損なわれる可能性がある状況下で、アクセスを逐次化する。

    固有基本索引(UPI)、非固有基本索引(NUPI)、または固有副次索引(USI) のアクセスを使用する単純な要求については、このロック手順がステップ2に組み込まれます。索引とその使用方法については、データ分散とデータ アクセスの方法を参照してください。

  2. 操作 - 要求されたタスクを実行する。複雑な問合わせの場合、操作ステップ数が数百に上る場合がある。
  3. トランザクション終了 - ステップ1 または2 で設定されたロックが解除される。

    この段階で、関係する全AMPに処理の完了を知らせます。それぞれのAMPには、ディスクが接続されています。