H30 午後I 問3 設問1 (5)

たけしさん  
(No.1)
DBスペシャリストH30 午後I 問3 設問1 (5) 
についてなのですが、高クラスタの索引の場合、 
最小読み込みページ数が 探索行数 ÷ ページあたりの平均行数 で表される理由が全くわかりません。 
例えば、1ページだけ行数が非常に多い(つまり、その1ページに探索行数がすべて収まる)場合、最小読み込みページ数は1ページで収まるはずが、 
ページあたりの平均行数を考えた場合、平均行数が探索行数を下回り、上記の計算式では最小のページ数にならない場合があるように思えてしまいます。

どなたかご存知の方はいらっしゃいませんでしょうか?
2022.10.03 00:23
GinSanaさん 
DB シルバーマイスター
(No.2)
この投稿は投稿者により削除されました。(2022.10.03 17:02)
2022.10.03 17:02
GinSanaさん 
DB シルバーマイスター
(No.3)
この投稿は投稿者により削除されました。(2022.10.03 17:05)
2022.10.03 17:05
GinSanaさん 
DB シルバーマイスター
(No.4)
高クラスタの場合は、例えば10行分を探すとき、この問題の理屈(P18の(4))的には、ページに対して物理的に順番に入っている。
1ページに4行入っている場合、1行目がページの一番上にあるとして、上から舐めるとして、最小で3ページ読み込めば十分であることになる。

※平均行数は、あくまでも有効な領域を平均行長で割っただけの見積としての位置付けなので、実際の1ページだけが馬鹿でかい建付けかどうかは気にしないです

>平均行数が探索行数を下回り
これは「上回り」ですか。
仮に平均行数を4、探索行数を3とした場合、最小のページ数は1になる。
ページを0.75だけ吸い込んで読むなんてことはできないので、切り上げで考えるならば、特に違和感はないです。
2022.10.03 17:05
たけしさん  
(No.5)
GinSanaさま ありがとうございます。

> これは「上回り」ですか。
いえ、「下回り」です。

たとえば、探索行数を3、平均行数を2である場合を考えます。
あるページが行数4の場合、そこに高クラスタな索引があれば、読み込むページは1ページで住む、すなわち最小は1ページとなります。
一方、行数4のページが存在するにもかかわらず、平均行数が2(すなわち、それぞれのページの行数が4行 + 1行 + 1行 + 1行 + 2行 の平均行数は2行になる)の場合、探索行数を平均行数が下回り、3 / 2 = 1.5 ~ 2 となり、今回の問題の解答では「最小ページ数」が「2ページ」という結果になる(=つまり「最小」ではない)ことになります。

問題文では「最小」という言葉を用いているので、そこが引っかかりました。
2022.10.03 20:35
にゃんちゃんさん 
DB シルバーマイスター
(No.6)
デスぺのデータ見積の前提(暗黙の了解?)として
平均行長:各行のバイト数は平均行長と同じとみなす
ページあたりの平均行数:各ページは平均行数と同じとみなす
として見積の試算をします。

例えば、ページあたりの平均行数100行で3ページなら
1ページ目,100行
2ページ目,100行
3ページ目,100行
として計算します。

「このデータベース、やたらINSERTやDELETEしまくるけど一切の再編成をしないんだよな~」
という、以下のような個別のレアケースは考えません。
1ページ目,280行
2ページ目,10行
3ページ目,10行

考える状況は以下のテーブルで
1ページ目,100行
2ページ目,100行
3ページ目,100行
上記の条件(通常というか一般的というか)の下で最小を見積もるとどうなるか?です。
特殊な記述がなければ、見積は偏りない状況を前提に計算します。
2022.10.03 21:47
たけしさん  
(No.7)
にゃんちゃん さま
ありがとうございます。大変助かります。
「暗黙の了解」あるのですね。。。
2022.10.04 21:40
にゃんちゃんさん 
DB シルバーマイスター
(No.8)
そういうもんなんだ、と覚えてしまってもいいかと思います。

業種や現場、社風や上司によっても違うんだと思いますが
通常、見積という言葉は「普通の状況ならだいたいこれくらい」という試算で使われます。

例えば、これから一人暮らしをしようとしている学生から
「単身の電気代って、月で何円くらいの幅で見ておけばいいですか?」と聞かれたら
平均的な家電数、平均的な使用状況で見積もって
「節電すれば2500円くらい、ペット飼ってて夏場24時間冷房だと12000円くらいかな」
と見積を返すと思います。

これを、理論上の最小値・最大値で
「1か月間ブレーカーを落とせば基本料金の1500円くらいで
使った分だけ従量課金だから、理論上は上限ないね。青天井!」
という見積は返さないかと思います。

業種によってはクレームを発生させないために、理論上の最小・最大を返すこともあるかもですが
とりあえずデスぺ試験では平均を使うんだなと思っておけば大丈夫です!
2022.10.04 22:00

返信投稿用フォーム

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

その他のスレッド


Pagetop