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

SAP Sybase SQL Anywhere 16.0 » Ultra Light データベース管理とリファレンス » Ultra Light のパフォーマンスに関するヒント » クエリのパフォーマンスに関するヒント » Ultra Light の実行プラン » オプティマイザで使用するアクセス方法の決定

 

テンポラリテーブルの管理

一般的に、オプティマイザは、クエリ結果を返すことを目的としたテンポラリテーブル作成を回避しようとします。これは、最初のローを返す前に、テンポラリテーブル全体を移植する必要があるからです。インデックスが存在する場合、オプティマイザはまずこのインデックスを使用しようとします。テンポラリテーブルを作成するのは最後の手段としてのみです。

テンポラリテーブルは、アクセスプランによって、実行中にデータを格納するために、一時的なテーブル、つまりテンポラリワークテーブルとして使用されます。このテーブルが存在するのは、アクセスプランの実行中のみです。一般的に、テンポラリテーブルが使用されるのは、使用可能なメモリに中間結果が収まらない場合です。たとえば、次のような場合です。

  • サブクエリをアクセスプランの早い段階で評価する必要がある場合

  • テンポラリテーブルのデータが単一の接続に対してのみ保持される場合

  • クエリにインデックス以外のカラムに対する ORDER BY 句が含まれている場合

  • クエリにインデックス以外のカラムに対する GROUP BY 句が含まれている場合

作成したインデックスでテンポラリテーブルの作成を回避できるかどうかを予測することは困難です。そのため、クエリプランをチェックして、作成したインデックスが実際に Ultra Light クエリオプティマイザで使用されているかどうかを確認する必要があります。

テンポラリテーブルの使用を避けるには、ORDER BY 句または GROUP BY 句で使用されるカラムでインデックスを使用します。

 参照

ダイレクトページスキャン