応用情報技術者データベース応用オリジナル・公式資料照合難易度★★★☆☆

注文表に通常の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

同じレッスンの問題

アプリで毎日学習しよう

ゲーミフィケーションで 応用情報技術者 合格を目指す。無料・課金なし。

更新: 2026/10/28