関係データベース上に作成した“顧客”表の検索に時間がかかるようになってきた。
調査したところ,レコード数が当初の数倍に増加していることと,検索の度に全レコードにアクセスしていることが分かった。
この表の検索時間を短縮するために,最も有効な対策はどれか。
正答3
解説
正解は3です。
データベースの検索性能を改善する方法を問う問題です。
検索のたびに全レコードにアクセスしているのは、検索条件の列にインデックス(索引)がなく、表全体を順に調べているためと考えられます。
【選択肢別解説】
1:× インデックス領域を広げても、検索条件に合うインデックスがなければ全件検索は変わりません。
領域の大きさは原因ではありません。
2:× DBMS(Database Management System)を再インストールしても、表の構造や検索方法は変わりません。
検索時間は短縮されません。
3:○ 検索条件に使う列にインデックスを追加すれば、DBMSは全件を調べずに該当レコードの位置を直接たどれます。
レコード数が増えても検索時間を抑えられます。
4:× ディスク領域を広げても、全レコードを読む処理量は減りません。
検索時間の短縮にはつながりません。
【ポイント】
インデックスは本の索引と同じで、全ページをめくらずに目的の箇所へたどり着くための仕組みです。
ただし、インデックスを増やしすぎると更新処理が遅くなる点にも注意が必要です。