ここまでの説明で、アクセス対象のデータ量によって適切なアクセス方法が異なることは、理解いただけたと思います。また、データベースのパフォーマンスを向上させるには、索引を効果的に使用することが重要です。
効果的に使用されない索引は、逆にパフォーマンスを低下させる原因となるため、注意が必要です。
例えば、ある表に5つの索引が作成されているとします。この状態で表にINSERT処理が行われると、表に行が追加されますが、同時に5つの索引にも自動的に新規のデータが追加されます。つまり、索引が存在すると、表と索引の間でデータの同期を取るための時間や負荷が掛かるため、更新処理のパフォーマンス低下を招きます。
これを回避するために、パフォーマンス向上に役立っていない索引は極力削除することが重要です。例えば、夜間バッチなどで大量更新処理を行う場合は、表に作成されている索引を削除してから実施すると、処理時間を大きく短縮できる可能性があります。
今回は、基本的なデータアクセス方法について解説しました。
例えば「大量データの集計作業では、全表スキャン」「表の一部のデータにアクセスする社員検索では、索引スキャン」といったように、「全表スキャン」と「索引スキャン」のそれぞれの特徴を捉え、SQLの処理内容に応じて適切なアクセス方法を選択できるようにすること、また索引を効果的に使うことが、SQLチューニング作業の第一歩となります。
【2017/1/6】2017年時点の状況に合わせて、内容を追記更新しました
【2009/01/19】初版公開
株式会社アシスト サービス事業部 教育部所属。Oracle研修の講師として、リカバリーやチューニングなどの研修を幅広く担当。イメージを想像しやすいよう、例え話や事例を多く用いた説明を心掛けている。週末は趣味の草野球を楽しんでいる
株式会社アシスト 支援統括部 教育部所属(当時)
Copyright © ITmedia, Inc. All Rights Reserved.