REDOログ・ファイルの設定で更新処理をチューニング:Oracle SQLチューニング講座(13)(3/3 ページ)
本連載では、Oracleデータベースのパフォーマンス・チューニングの中から、特にSQLのチューニングに注目して、実践レベルの手法を解説する。読者はOracleデータベースのアーキテクチャを理解し、運用管理の実務経験を積んでいることが望ましい。対象とするバージョンは現状で広く使われているOracle9iの機能を基本とするが、Oracle 10gで有効な情報も随時紹介していく。(編集局)
不要なインデックスの削除
索引が作成されている列値を更新すると、表データはもちろん、索引自体も更新されます。単純に考えても、索引がない場合に比べ、書き込み量が多くなる分(実際には、さらに索引のメンテナンスのオーバーヘッドもあります)、更新処理は遅くなります。
このため、更新処理のパフォーマンスに問題がある場合、対象表に作成されている索引を調査し、削除できる索引がないか検討してみてください。検索のパフォーマンスなどを考慮して作成された索引が、実際にはほとんど使用されていないことも少なくありません。Oracleでは、以下の手順により、索引が使用されているかどうかをチェックすることが可能です。
モニタリングの結果、利用されていない索引が確認できた場合、更新処理パフォーマンスの向上、および余分な領域を開放するためにも、索引の削除を検討してください。また、不要な索引がない場合でも、更新処理前に一時的に索引を削除し、更新処理後に再作成した方が全体の処理時間が短くなる場合もありますので、必要に応じて、これらの方法も検討してみてください。
まとめ
約1年間にわたって、SQLチューニングの基本となる知識とテクニックを、具体的な例を交えながら紹介させていただきました。データベースのチューニングは、インスタンス(初期化パラメータ)のチューニングや、ファイルI/Oの分散などもありますが、最も重要で効果を発揮するのはSQLチューニングです。何から行えばいいのか分からないと耳にするSQLチューニングですが、特に魔法のテクニックが必要でも、複雑怪奇な難しいものでもありません。これまでに説明してきたような基本テクニックをマスターし、組み合わせることで、ほとんどのパフォーマンスの問題は解消できるはずです。
これからチューニングを手掛けようとされている方々に、本講座の情報が少しでもお役に立てば幸いです。長い間ご愛読いただきましてありがとうございました。(連載完)
Copyright © ITmedia, Inc. All Rights Reserved.