H27 午後2 問1 設問3 探索対象ページ数
aptさん
(No.1)
索引や、探索対象ページ数という言葉が、よく分からなくなってきてしまいました。
発端としては、下記スレッドと同じ疑問を持ち、拝見しました。
https://www.db-siken.com/bbs/0071.html
ただ、そうすると表14の案Xの探索対象ページ数も900,000,000になりそうな気がして、こちらだけページあたり平均行数で割っている理由が分かりません。
(医療機関IDをクラスタ索引にしても、それをキーに検索していないので、探索対象行数分ページを検索すべきでは?)
表14の案Xの探索対象ページ数
表15の案①の探索対象ページ数
はそれぞれどのような計算で求まるのでしょうか?
発端としては、下記スレッドと同じ疑問を持ち、拝見しました。
https://www.db-siken.com/bbs/0071.html
ただ、そうすると表14の案Xの探索対象ページ数も900,000,000になりそうな気がして、こちらだけページあたり平均行数で割っている理由が分かりません。
(医療機関IDをクラスタ索引にしても、それをキーに検索していないので、探索対象行数分ページを検索すべきでは?)
表14の案Xの探索対象ページ数
表15の案①の探索対象ページ数
はそれぞれどのような計算で求まるのでしょうか?
2025.09.14 10:43
ぶどうさん
(No.2)
> 索引や、探索対象ページ数という言葉が、よく分からなくなってきてしまいました。
平成30年午後I問3表6を復習した上で
> 医療機関IDをクラスタ索引にしても、それをキーに検索していないので、探索対象行数分ページを検索すべきでは?
お茶を濁しましょう。
2025.09.15 02:43
aptさん
(No.3)
ご回答ありがとうございます。
ご提示いただいた平成30年午後I問3表6を見直し、表14の案Xの探索対象ページ数以外の部分については分かりましたが
の意図を汲み取ることができませんでした。
こちらはどういった意味合いでしょうか?
ご提示いただいた平成30年午後I問3表6を見直し、表14の案Xの探索対象ページ数以外の部分については分かりましたが
>お茶を濁しましょう。
の意図を汲み取ることができませんでした。
こちらはどういった意味合いでしょうか?
2025.09.15 09:49
ぶどうさん
(No.4)
明確に言語化できるほど理解できていないので、よくわからないという意味です。
ではでは早速、探索対象行数分ページを検索してみましょう。非クラスタの場合、探索対象行数分のページをデータベースに探しにいきます。全部ですね。クラスタの場合、データベースに探しにいこうとしたら、バッファに該当ページが残っていて、全部からさらに試算値を減らせる。
> > 医療機関IDをクラスタ索引にしても、それをキーに検索していないので、探索対象行数分ページを検索すべきでは?
ではでは早速、探索対象行数分ページを検索してみましょう。非クラスタの場合、探索対象行数分のページをデータベースに探しにいきます。全部ですね。クラスタの場合、データベースに探しにいこうとしたら、バッファに該当ページが残っていて、全部からさらに試算値を減らせる。
2025.09.15 15:05
aptさん
(No.5)
ありがとうございます。
今回はおそらく患者IDと年月で検索するため
医療機関IDにクラスタ索引を定義したところで、今回の検索では索引として使われない気がしており、探索対象ページ数が減るのが腑に落ちず…
問題にはなってない部分なのでいったん気にしないほうが良さそうですかね。
(とはいえ本番でこういうのが出てしまうと
まずは既に記載されている数字から逆算して計算方法を確認することもあると思うので、混乱しそうですが)
※もし分かる方いらっしゃいましたら、ご教示いただけますと幸いです。
今回はおそらく患者IDと年月で検索するため
医療機関IDにクラスタ索引を定義したところで、今回の検索では索引として使われない気がしており、探索対象ページ数が減るのが腑に落ちず…
問題にはなってない部分なのでいったん気にしないほうが良さそうですかね。
(とはいえ本番でこういうのが出てしまうと
まずは既に記載されている数字から逆算して計算方法を確認することもあると思うので、混乱しそうですが)
※もし分かる方いらっしゃいましたら、ご教示いただけますと幸いです。
2025.09.15 17:01
枝豆5656さん
(No.6)
案Xは医療機関IDをキーにして検索する前提ではないでしょうか?逆に患者IDで検索すると考えたのはなぜでしょうか?
2025.09.16 00:10
枝豆5656さん
(No.7)
なお、案Xのデータに対して患者IDで検索したら、案Zと同じ数字になると思います。
2025.09.16 00:20
aptさん
(No.8)
ご返信ありがとうございます。
1.探索対象ページ数試算の前提
(1)②性別、年齢別などの条件で〜1年以内のオーダを抽出する
とあるため、絞り込んだ患者ID、オーダ発行日で検索すると考えました。
そのため
案Xの探索対象行数は索引を使わずに検索するのでオーダテーブルの全件(年間9000万件を10年分を保存で9億件)となり
案Yと案Xは患者IDを使って索引を使って絞り込めるので、10000人×1800件(1人あたり10年分あたりの件数)
になっていると思われます。
この前提で考えているため、案Xの探索対象ページ数がどう求まっているか分からず…
案Zも18,000,000件のため、案Xの探索対象ページ数には違和感は無いということでしょうか?
>患者IDで検索すると考えたのはなぜでしょうか?
1.探索対象ページ数試算の前提
(1)②性別、年齢別などの条件で〜1年以内のオーダを抽出する
とあるため、絞り込んだ患者ID、オーダ発行日で検索すると考えました。
そのため
案Xの探索対象行数は索引を使わずに検索するのでオーダテーブルの全件(年間9000万件を10年分を保存で9億件)となり
案Yと案Xは患者IDを使って索引を使って絞り込めるので、10000人×1800件(1人あたり10年分あたりの件数)
になっていると思われます。
この前提で考えているため、案Xの探索対象ページ数がどう求まっているか分からず…
>なお、案Xのデータに対して患者IDで検索したら、案Zと同じ数字になると思います。
案Zも18,000,000件のため、案Xの探索対象ページ数には違和感は無いということでしょうか?
2025.09.16 06:53
DCLさん
(No.9)
案X、医療機関IDにしたクラスタ索引の場合。aptさんのおっしゃる通り検索条件に合致しない為、索引は使用されずに表探索になります。
この場合、索引による探索行数の絞り込みはできずに、探索行数=全行数になりますが、探索ページ数は1ページあたりの平均行数で割ったものになります。
とりあえずここまで。
何か疑問点があれば、随時ご質問下さい。
★アクセスパスの整理
◾️表探索(検索条件に合致しない)
・探索行数=全行数
・探索頁数=全行数/1ページあたりの平均行数
◾️検索条件が合致。クラスタ索引
・探索行数=全行数/条件絞り込み倍率
・探索頁数=探索行数/1ページあたりの平均行数
◾️検索条件が合致。非クラスタ索引
・探索行数=全行数/条件絞り込み倍率
・探索頁数=探索行数
◾️検索条件が合致しない。非クラスタ索引
※ただしこのアクセスパスをオプティマイザが選択する事はない。
H16年、午後1に無理矢理計算させる問題があったと思います。
・探索行数=全行数
・探索頁数=探索行数(全行数)
この場合、索引による探索行数の絞り込みはできずに、探索行数=全行数になりますが、探索ページ数は1ページあたりの平均行数で割ったものになります。
とりあえずここまで。
何か疑問点があれば、随時ご質問下さい。
★アクセスパスの整理
◾️表探索(検索条件に合致しない)
・探索行数=全行数
・探索頁数=全行数/1ページあたりの平均行数
◾️検索条件が合致。クラスタ索引
・探索行数=全行数/条件絞り込み倍率
・探索頁数=探索行数/1ページあたりの平均行数
◾️検索条件が合致。非クラスタ索引
・探索行数=全行数/条件絞り込み倍率
・探索頁数=探索行数
◾️検索条件が合致しない。非クラスタ索引
※ただしこのアクセスパスをオプティマイザが選択する事はない。
H16年、午後1に無理矢理計算させる問題があったと思います。
・探索行数=全行数
・探索頁数=探索行数(全行数)
2025.09.16 08:17
DCLさん
(No.10)
細かい誤字脱字はお許し下さい。
これも随時修正させていただきます。
これも随時修正させていただきます。
2025.09.16 08:19
DCLさん
(No.11)
パーティション後の案①も下の経路でしょう。
あくまで区分内探索を使用する前提のようです。
区分内の全行が必要になるので、表探索するだけでいいと思いますが、ここは問題文に従いましょう。
◾️検索条件が合致しない。非クラスタ索引
※ただしこのアクセスパスをオプティマイザが選択する事はない。
H16年、午後1に無理矢理計算させる問題があったと思います。
・探索行数=全行数
・探索頁数=探索行数(全行数)
あくまで区分内探索を使用する前提のようです。
区分内の全行が必要になるので、表探索するだけでいいと思いますが、ここは問題文に従いましょう。
◾️検索条件が合致しない。非クラスタ索引
※ただしこのアクセスパスをオプティマイザが選択する事はない。
H16年、午後1に無理矢理計算させる問題があったと思います。
・探索行数=全行数
・探索頁数=探索行数(全行数)
2025.09.16 10:22
aptさん
(No.12)
DCLさん
詳細にご説明ありがとうございます。
自分の中で勘違いしていた部分が分かってきたかもしれません。
下記、勘違いしていたことと、自分の中での理解をまとめましたので、まずはここまで認識の相違が無いかご確認いただけますでしょうか。
【勘違いしていたこと】
表探索、クラスタ索引における探索頁数の計算式が、同じような意味合いだと思い込み(数字だけ見るとどちらも「探索行数/1ページあたりの平均行数」に見えるため)、表探索とクラスタ索引が同じような式で表せるのはなぜ?と混乱していました。
【それぞれの式の意味合いの違いの理解】
■表探索における探索頁数
そもそもページごとに検索せず、全ページを一括で検索するため
全行数/1ページあたりの平均行数
という式は、全部のページ数という意味。
■検索条件が合致。クラスタ索引における探索頁数
探索行数/1ページあたりの平均行数
という式は、探索する行が順番に同じページに固まっている場合の探索ページ数という意味。
詳細にご説明ありがとうございます。
自分の中で勘違いしていた部分が分かってきたかもしれません。
下記、勘違いしていたことと、自分の中での理解をまとめましたので、まずはここまで認識の相違が無いかご確認いただけますでしょうか。
【勘違いしていたこと】
表探索、クラスタ索引における探索頁数の計算式が、同じような意味合いだと思い込み(数字だけ見るとどちらも「探索行数/1ページあたりの平均行数」に見えるため)、表探索とクラスタ索引が同じような式で表せるのはなぜ?と混乱していました。
【それぞれの式の意味合いの違いの理解】
■表探索における探索頁数
そもそもページごとに検索せず、全ページを一括で検索するため
全行数/1ページあたりの平均行数
という式は、全部のページ数という意味。
■検索条件が合致。クラスタ索引における探索頁数
探索行数/1ページあたりの平均行数
という式は、探索する行が順番に同じページに固まっている場合の探索ページ数という意味。
2025.09.16 11:30
DCLさん
(No.13)
おっしゃる通りの認識で問題ないかと思います。
表探索とは「検索条件に合致しないが、100%のクラスタ索引」を走破するのとほぼ同義です。
索引検索は"索引ページ"に記載された探索対象から1行ずつ、"データページ"に参照しにいくイメージです。
索引ページには索引キーと行ロケータが格納されています。
行ロケータがデータページのアドレスです。
1行ずつデータページを参照するので、前行と同じデータページであれば、探索ページ数は増えません。
ただし一度違うデータページに行くと再カウントされる。
例)
索引キー、行ロケータ
001,データページA
001,データページA
001,データページB
→探索行数3、探索ページ数2
索引キー、行ロケータ
001,データページA
001,データページB
001,データページA
→探索行数3、探索ページ数3
リンク先でokomeさんが、2回同じページを読み込んだ場合〜
下の例のデータページA。
とりあえず空き時間でここまで
ごめんなさい。
表探索とは「検索条件に合致しないが、100%のクラスタ索引」を走破するのとほぼ同義です。
索引検索は"索引ページ"に記載された探索対象から1行ずつ、"データページ"に参照しにいくイメージです。
索引ページには索引キーと行ロケータが格納されています。
行ロケータがデータページのアドレスです。
1行ずつデータページを参照するので、前行と同じデータページであれば、探索ページ数は増えません。
ただし一度違うデータページに行くと再カウントされる。
例)
索引キー、行ロケータ
001,データページA
001,データページA
001,データページB
→探索行数3、探索ページ数2
索引キー、行ロケータ
001,データページA
001,データページB
001,データページA
→探索行数3、探索ページ数3
リンク先でokomeさんが、2回同じページを読み込んだ場合〜
下の例のデータページA。
とりあえず空き時間でここまで
ごめんなさい。
2025.09.16 12:42
aptさん
(No.14)
DCLさん
イメージまでご解説いただきありがとうございます。
より理解が深まりました。(リンク先で〜とありますが、何かリンク貼られてましたでしょうか?)
細かい点かもしれませんが、もう少し確認させてください。
こちらがどのような状況なのか?表探索とどちらなのかの判断基準があるのか?が分かりませんでした。
例えば、No.11のコメントを読む限りですと、区分内だからこのパターン、というわけでもないのでしょうか?
※お忙しいところ申し訳ございません。
急ぎではございませんので、気が向いたときにでもご返信いただけますと幸いです。
イメージまでご解説いただきありがとうございます。
より理解が深まりました。(リンク先で〜とありますが、何かリンク貼られてましたでしょうか?)
細かい点かもしれませんが、もう少し確認させてください。
>◾️検索条件が合致しない。非クラスタ索引
こちらがどのような状況なのか?表探索とどちらなのかの判断基準があるのか?が分かりませんでした。
例えば、No.11のコメントを読む限りですと、区分内だからこのパターン、というわけでもないのでしょうか?
※お忙しいところ申し訳ございません。
急ぎではございませんので、気が向いたときにでもご返信いただけますと幸いです。
2025.09.16 15:52
枝豆5656さん
(No.15)
DCLさん、大変勉強になりました。
aptさん、おかしなコメントしちゃいまして失礼しました。ちなみにリンク先は1に記載のリンク先ではないでしょうか。
aptさん、おかしなコメントしちゃいまして失礼しました。ちなみにリンク先は1に記載のリンク先ではないでしょうか。
2025.09.16 18:50
aptさん
(No.16)
枝豆5656さん
とんでもございません!
議論することにより、自分がなぜそう考えているか?を言語化できたりもしたので、大変感謝しております。
リンク先は完全にそうでした…自分で貼ったのに忘れていました、お恥ずかしいですm(_ _)m
とんでもございません!
議論することにより、自分がなぜそう考えているか?を言語化できたりもしたので、大変感謝しております。
リンク先は完全にそうでした…自分で貼ったのに忘れていました、お恥ずかしいですm(_ _)m
2025.09.16 19:56
DCLさん
(No.17)
aptさん
通常はあり得ないと思います。
検索条件に合致しない=全行参照。
全行参照=表探索。と判断されるからです。
わざわざ使わない索引ページを走破して
全行分、一行ずつ、データページを参照する。
こんな非効率な事は絶対にしません。
(データページを最初から最後まで一度参照すればいいだけ)
ただ、試験問題という特性上、度々見受けられますので
問題文で判断するしかないと思います。
今回の問題であれば、案①のように区分内を全行参照だから表探索すればいいのに
探索行数=探索頁数になってるから、わざわざ区分内検索使って非効率な検索してるんだな。とか
※これで案②だけ表探索なら大問題ですが
H16年の索引問題であれば「検索条件に合致しない非クラスタ索引を使った場合に
読み取る事になるデータページ数を答えなさい」
そんな事絶対しないと思うけど、問題だから仕方ない。とか
※この問題はうる覚えです。ごめんなさい。
DBの午後試験は他の方も言われているようにタイムアタックです。
ここは素直に従っておきましょう。
>◾️検索条件が合致しない。非クラスタ索引
通常はあり得ないと思います。
検索条件に合致しない=全行参照。
全行参照=表探索。と判断されるからです。
わざわざ使わない索引ページを走破して
全行分、一行ずつ、データページを参照する。
こんな非効率な事は絶対にしません。
(データページを最初から最後まで一度参照すればいいだけ)
ただ、試験問題という特性上、度々見受けられますので
問題文で判断するしかないと思います。
今回の問題であれば、案①のように区分内を全行参照だから表探索すればいいのに
探索行数=探索頁数になってるから、わざわざ区分内検索使って非効率な検索してるんだな。とか
※これで案②だけ表探索なら大問題ですが
H16年の索引問題であれば「検索条件に合致しない非クラスタ索引を使った場合に
読み取る事になるデータページ数を答えなさい」
そんな事絶対しないと思うけど、問題だから仕方ない。とか
※この問題はうる覚えです。ごめんなさい。
DBの午後試験は他の方も言われているようにタイムアタックです。
ここは素直に従っておきましょう。
2025.09.16 20:40
DCLさん
(No.18)
枝豆5656さん
こちらこそです。
私も皆様の質問、回答を閲覧したり
時には自分も参加して言語化する事で
知識の復習したり、補足をさせていただいております。
試験には合格しておりますが、まだまだ勉強中の身ですので
今後もご指摘のほど、よろしくお願いします!
リンク先の件は枝豆5656さんのおっしゃる通りです。
毎度、走り書きで申し訳ございません。
こちらこそです。
私も皆様の質問、回答を閲覧したり
時には自分も参加して言語化する事で
知識の復習したり、補足をさせていただいております。
試験には合格しておりますが、まだまだ勉強中の身ですので
今後もご指摘のほど、よろしくお願いします!
リンク先の件は枝豆5656さんのおっしゃる通りです。
毎度、走り書きで申し訳ございません。
2025.09.16 20:50
aptさん
(No.19)
DCLさん
ありがとうございます。
条件によって判断するというよりは、問題文の記載によって判断するという感じなのですね。
参考書以上に詳細な説明ありがとうございました。
こちらのスレとにらめっこしながら、自分でもいろいろ調べつつ、類題含め問題解いてみてみます!
ご返信いただいた皆様もありがとうございました。
ありがとうございます。
条件によって判断するというよりは、問題文の記載によって判断するという感じなのですね。
参考書以上に詳細な説明ありがとうございました。
こちらのスレとにらめっこしながら、自分でもいろいろ調べつつ、類題含め問題解いてみてみます!
ご返信いただいた皆様もありがとうございました。
2025.09.17 07:59