短いテキスト・プランは、プランを短時間で比較する場合に便利です。短いプランでは、すべてのプラン・フォーマットの最低限の情報が 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>
各クエリ・ブロックのジョイン方式はコロンで区切られます。短いプランでは常に、メイン・ブロックのジョイン方式が先にリストされます。その後に、他のクエリ・ブロックのジョイン方式がリストされます。このような他のクエリ・ブロックのジョイン方式の順序は、文におけるクエリ・ブロックの順序やその実行順序とは一致しない場合があります。
プランに使用される省略形の詳細については、実行プランの省略形を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |