自分用に疑問点や調べたことをまとめたものです。
R3
午後Ⅰ問2
索引はバッファヒット率100%、テーブルはバッファヒット率0%と仮定
索引データ自体は全てバッファ上に存在するので、該当行を含むページのディスク上の位置はすぐに分かる、が、そのページ自体はバッファ上に存在しないためディスクI/Oが発生する、という意味か?
であれば「テーブルはバッファヒット率0%」ではなく「ページはバッファヒット率0%」と書いてほしい…
以下perplexityの回答。わかってきたら要検討。。
「実際には索引から行ID(Heap TID)を見つけた後、その対応するデータページがバッファにないからディスクI/Oが起きる」ので、正確さだけでいえば「データページはバッファヒット率0%」と書いたほうが分かりやすいです。
しかし説明や論文、教科書的な記述ではしばしば「テーブル側のバッファヒット率0%」と大ざっぱに表現されます。理由は:
- 簡潔さ重視:ページ単位で区別すると説明が煩雑になるため、全テーブルデータをひとくくりにして「バッファに無いもの」と扱う。
- コスト推定のモデル化:RDBMSの実際のI/Oコスト推定も「テーブルアクセスのヒット率パラメータ」として粗い値を使うことがある。個々のページではなくテーブル全体で仮定を置く方が計算モデルとして扱いやすい
- 意図した前提条件の強調:ここでの議論は「索引は全部メモリに載っている」と「テーブルはディスクから読む必要がある」というコントラストを説明したいので、細かさより両者の違いを単純に表現している
DBドメイン知識
- オーソリ処理
- クレジット決済の際に利用する用語で、カードが正当に利用できるかどうかをクレジットカード会社に確認する作業のこと。信用照会と与信確認を指す
- 信用照会:ローンやカードの利用状況などを確認
- 与信確認:与信枠(利用可能金額)の範囲内か、不正利用でないかを確認
- ”Authorization"の略
- クレジット決済の際に利用する用語で、カードが正当に利用できるかどうかをクレジットカード会社に確認する作業のこと。信用照会と与信確認を指す