令和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

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop