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文のチューニング方法を説明しています。次の項で構成されています。
参照:
-
SQLアクセス・アドバイザについては、「データ・アクセス・パスの最適化」を参照してください。