応用情報技術者データベース応用オリジナル・公式資料照合難易度★★★☆☆
注文表に通常のB-tree複合索引(customer_id, ordered_at)がある。特定顧客の一定期間内の注文を検索する、索引の先頭列から条件を指定したSQLはどれか。実際に索引が選ばれるかは統計情報や件数にも依存する。
A
WHERE ordered_at >= DATE '2026-10-01' だけ
顧客条件がなく、求める特定顧客の検索になっていません。索引の先頭列の等価条件もありません。
B
WHERE customer_id + 1 = 43 だけ
顧客の数値加工だけで期間条件がありません。通常の列索引で式をどう扱うかにも注意が必要です。
C
WHERE customer_id = 42 AND ordered_at >= DATE '2026-10-01' AND ordered_at < DATE '2026-11-01'★ 正解
先頭列customer_idを等価で絞り、その中のordered_atを範囲条件で指定しており、要件と索引の順序に合います。
D
WHERE customer_id <> 42 だけ
対象顧客を除外する条件であり、特定顧客42の期間内検索とは異なります。
解説
B-tree複合索引は列の順序と条件の組合せを確認します。等価条件の顧客の中で日時範囲を絞れますが、実行計画はデータ分布等でも変わります。
根拠資料・確認情報
対応範囲:2026年度 応用情報技術者試験
資料確認日:2026-10-28