12 SQL文のチューニング

SQL文はOracle Databaseで取得するデータを指定します。たとえば、SQL文を使用して部門の従業員の名前を取得できます。Oracle DatabaseによってSQL文が実行される場合は、問合せオプティマイザ(オプティマイザとも呼ばれる)によって、結果を取得する最適で効率的な方法が最初に判断されます。

オプティマイザでは、全表スキャンと呼ばれる表のすべてのデータの読取りか、索引を使用するかどちらがより効率的なのかを判断します。すべての可能なアプローチのコストを比較し、最もコストの少ないアプローチが選択されます。SQL文を物理的に実行するアクセス方法は、実行計画と呼ばれ、オプティマイザにより生成されます。実行計画の決定は、SQL文の処理において重要なステップで、実行時間に非常に影響します。

問合せオプティマイザはSQL文のチューニングにも役立ちます。SQLチューニング・アドバイザおよびSQLアクセス・アドバイザを使用すると、SQL文またはSQL文のセットを調べるアドバイス・モードで問合せオプティマイザを実行でき、SQL文の効率を向上させる方法が判断されます。SQLチューニング・アドバイザおよびSQLアクセス・アドバイザは、次のような各種の推奨を実行できます。

  • SQLプロファイルの作成

  • SQL文の再構築

  • 追加の索引またはマテリアライズド・ビューの作成

  • オプティマイザ統計のリフレッシュ

また、Oracle Enterprise Manager Cloud Control (Cloud Control)により、簡単に多くのこれらの推奨事項を受け入れて実装できます。

SQLアクセス・アドバイザは、主に索引およびマテリアライズド・ビューの追加および削除などのスキーマ変更の推奨事項を作成する場合に使用します。SQLチューニング・アドバイザは、SQLプロファイルの作成、SQL文の再構築などの他のタイプの推奨事項の作成に使用します。新しい索引を作成するとパフォーマンスが大幅に向上できる場合、SQLチューニング・アドバイザは索引の作成を推奨する可能性があります。ただし、これらの推奨事項は、典型的なSQL文のセットを含んだSQLワークロードを使用してSQLアクセス・アドバイザを実行し、検証する必要があります。

この章ではSQLチューニング・アドバイザを使用するSQL文のチューニング方法を説明しています。次の項で構成されています。

参照: