SQLチューニングの基礎知識 「データアクセスと索引(インデックス)」の関係を理解する:ゼロからのリレーショナルデータベース入門(5)(3/3 ページ)
本連載は、企業の成長に不可欠な「データ活用」を推進していくために必要なデータ基盤の基礎を“あらためて”解説していきます。今回は、SQLのチューニングを行う上で最も重要な基礎知識を解説します。【更新版】
「索引」の注意事項
ここまでの説明で、アクセス対象のデータ量によって適切なアクセス方法が異なることは、理解いただけたと思います。また、データベースのパフォーマンスを向上させるには、索引を効果的に使用することが重要です。
効果的に使用されない索引は、逆にパフォーマンスを低下させる原因となるため、注意が必要です。
例えば、ある表に5つの索引が作成されているとします。この状態で表にINSERT処理が行われると、表に行が追加されますが、同時に5つの索引にも自動的に新規のデータが追加されます。つまり、索引が存在すると、表と索引の間でデータの同期を取るための時間や負荷が掛かるため、更新処理のパフォーマンス低下を招きます。
これを回避するために、パフォーマンス向上に役立っていない索引は極力削除することが重要です。例えば、夜間バッチなどで大量更新処理を行う場合は、表に作成されている索引を削除してから実施すると、処理時間を大きく短縮できる可能性があります。
まとめ:「全表スキャン」と「索引スキャン」のそれぞれの特徴を捉え、SQLの処理内容に応じて適切なアクセス方法を選択する
今回は、基本的なデータアクセス方法について解説しました。
例えば「大量データの集計作業では、全表スキャン」「表の一部のデータにアクセスする社員検索では、索引スキャン」といったように、「全表スキャン」と「索引スキャン」のそれぞれの特徴を捉え、SQLの処理内容に応じて適切なアクセス方法を選択できるようにすること、また索引を効果的に使うことが、SQLチューニング作業の第一歩となります。
更新履歴
【2017/1/6】2017年時点の状況に合わせて、内容を追記更新しました
【2009/01/19】初版公開
筆者紹介
坂田素道
株式会社アシスト サービス事業部 教育部所属。Oracle研修の講師として、リカバリーやチューニングなどの研修を幅広く担当。イメージを想像しやすいよう、例え話や事例を多く用いた説明を心掛けている。週末は趣味の草野球を楽しんでいる
初版:小野明洋
株式会社アシスト 支援統括部 教育部所属(当時)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- SQLの基礎 「SELECT」文を覚えよう
- SQLとはどういう言語か
「SQLは何となく苦手」という人は意外と多いものです。すでに何らかのプログラミング言語を習得している人を見ても、SQLを苦手としている人は少なくありません。そこで、実際にSQLを入力して結果を見ながら学習する連載を始めます。用意するのはインターネットにつながったWebブラウザだけ。気軽に始めてみてください。(編集部) - RDBMS製品のビッグ3、それぞれの“癖”をつかもう
本連載はOracleを使ったデータベースシステムの開発・運用管理にある程度の知識を持つ読者を対象に、Oracle以外の商用RDBMSであるMicrosoft SQL ServerとIBM DB2とのアーキテクチャの違いを明らかにし、マルチベンダに対応できるデータベースシステムの設計・開発・運用ノウハウを紹介していく。(編集局) - NoSQLはRDBMSに取って代わるものなのか?
「memcached」や「Apache Cassandra」、「Apache CouchDB」など、RDBMSとは異なる考えで設計してあるデータベース管理システムが普及しつつあります。この連載では、これら新しいデータベース管理システムの特徴と、RDBMSとの使い分け方について解説します。(編集部)