令和3年午後1問2設問1(2)

gawaさん  
(No.1)
「加盟店テーブルのデータバッファを増やすとランダムアクセスの処理時間を短縮できる」
というのは理解できるのですが、
「オーソリ履歴のデータバッファを増やしても、順次アクセスだから処理時間に影響しない」理由が理解できません。

オーソリ履歴テーブルもメモリのバッファ領域を増やせば、ストレージへのI/O処理時間が短くなり、加盟店テーブル同様に処理時間が短縮できると思ってしまうのですが‥‥何か根本的に勘違いしてるかもしれません。ご教示いただけますと幸いです。
2022.08.06 15:30
GinSanaさん 
DB・ブロンズエキスパート
(No.2)
>オーソリ履歴テーブルもメモリのバッファ領域を増やせば、
まあ、そうなんですが、
総なめってのは、データバッファの有無にかかわらず先頭から探索を行う、ってわけで、それは
データバッファを見る必要がない
ってわけで、そんなとこ増やしてどうすんの?って意味の模範解答になるんだと思います。
2022.08.06 19:50
gawaさん  
(No.3)
解説いただきありがとうございます。理解できました。
2022.08.07 08:39
まゆつばさん 
(No.4)
GinSanaさん 曰く
> 総なめってのは、データバッファの有無にかかわらず先頭から探索を行う、
> ってわけで、それは
> データバッファを見る必要がない

これ本当でしょうか
データはディスクからデータバッファにコピーされると思うのですが、
データバッファを見る必要がないってことは、
ディスクから読んだデータはどこにいくのでしょうか
2022.08.11 04:41
まゆつばさん 
(No.5)
もしかすると、データバッファはキャッシュであり、
順次アクセスは前に進んでいくだけだから、
DBMSはそもそもキャッシュしないということですかね
2022.08.11 08:00
GinSanaさん 
DB・ブロンズエキスパート
(No.6)
この投稿は投稿者により削除されました。(2022.08.11 11:51)
2022.08.11 11:51
GinSanaさん 
DB・ブロンズエキスパート
(No.7)
ランダムアクセスならページを読む(平成23年PM1問3のイメージ)前にデータベースバッファキャッシュを見てあるか?ないか?を確認して
ああキャッシュにあったね、よかった
で済むわけですけど、
順次アクセスの場合1ページ1ページ読んでいくからキャッシュにあろうがなかろうが読むのには変わらんって意味です。
データバッファ自体に入れてデータバッファから移動することに変わりはない(平成23年PM1のP22のイメージ)わけですが、全部読むのに変わりはないからバッファがあろうがなかろうが全ページをなめる以上はどうでもいい(バッファの入れ替わりのタイミングは多少変わるだろうが)、ってことですかね。
2022.08.11 11:51
gawaさん  
(No.8)
質問者ですが、お二人のやりとりをみて更によく理解できた気がします。以下、私の理解。

索引探索:まずバッファを見に行く→あればそのまま読むし、なければストレージを見に行きバッファ領域に読み込む
表探索:(普通バッファに全レコードあるわけないので普)まずストレージを見に行き、バッファ領域に読み込む

つまり、表探索の場合、バッファを増やしたとしても、せいぜい探索中のページイン/アウトが減るくらいの話であり、基本的には効果なしと言える。
2022.08.14 16:23

返信投稿用フォーム

※宣伝や迷惑行為を防止するため当サイトとIPAサイト以外のURLを含む記事の投稿は禁止されています。

投稿記事削除用フォーム

投稿番号:
パスワード:

その他のスレッド


Pagetop