Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » クエリ処理 » クエリの最適化と実行 » 実行プランの解釈 » テキスト・プランの解釈

 

短いテキスト・プラン

短いテキスト・プランは、プランを短時間で比較する場合に便利です。短いプランでは、すべてのプラン・フォーマットの最低限の情報が 1 行で表示されます。

次の例では、ORDER BY 句によって結果セット全体がソートされるため、プランは Work[Sort で始まります。Customers テーブルは、プライマリ・キー・インデックス CustomersKey によってアクセスされます。カラム Customers.ID がプライマリ・キーのため、インデックス・スキャンを使用して探索条件が満たされます。省略形 JNL は、Customers と SalesOrders の間のジョインを処理するためにオプティマイザでマージ・ジョインが選択されたことを示します。最後に、外部キー・インデックス FK_CustomerID_ID を使用して SalesOrders テーブルがアクセスされ、Customers テーブル内で CustomerID が 100 未満であるローが検索されます。

SELECT EXPLANATION ('SELECT GivenName, Surname, OrderDate
FROM Customers JOIN SalesOrders
WHERE CustomerID < 100
ORDER BY OrderDate');

Work[ Sort[ Customers<CustomersKey> JNL SalesOrders<FK_CustomerID_ID> ] ]

プランに使用されるコード・ワードの詳細については、実行プランの省略形を参照してください。

ジョイン方式の区切りにコロンを使用

次に示すコマンドには、「クエリ・ブロック」が 2 つ含まれています。1 つは SalesOrders テーブルと SalesOrderItems テーブルを参照する外部 SELECT ブロック、もう 1 つは Products テーブルから選択するサブクエリです。

SELECT EXPLANATION ('SELECT *
FROM SalesOrders AS o
   KEY JOIN SalesOrderItems AS I
WHERE EXISTS
   (  SELECT *
      FROM Products p
      WHERE p.ID = 300 )');

o<seq> JNL i<FK_ID_ID> : p<ProductsKey>

各クエリ・ブロックのジョイン方式はコロンで区切られます。短いプランでは常に、メイン・ブロックのジョイン方式が先にリストされます。その後に、他のクエリ・ブロックのジョイン方式がリストされます。このような他のクエリ・ブロックのジョイン方式の順序は、文におけるクエリ・ブロックの順序やその実行順序とは一致しない場合があります。

プランに使用される省略形の詳細については、実行プランの省略形を参照してください。