- ベストアンサー
論理読み込みブロック数とは?
タイトルどおりですが、「論理読み込みブロック数」とはいったい なんでしょうか?データベース経験が全く無いので、分かりやすい 説明をしていただけると幸いです。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Oracleの世界でいうブロックとは 「DBブロック」を意味します。 DBブロックのサイズは初期化パラメータdb_block_sizeでユーザが 明示的に決めることができ、一般には4K or 8K or 16Kくらいです。 (最近はディスクが大容量になっている関係で少なくとも8K、 多い場合は32Kにする場合もあります。) で、Oracleはいろんなサイズの概念から成り立っていて大きさで言うと レコード<DBブロック<エクステント<セグメント となります。 レコードは格納するデータによって可変ですので、 1DBブロック読んだ場合にその中に何レコード格納されているのかは レコードサイズによって変わってきます。 エクステントは複数ブロックから成り立ち、 テーブルやインデックスを作成する際にinitialとかnextとか いったパラメータでサイズを指定します。(最近は自動的に 決められるサイズを使って明示的に指定しないことも多いですが) セグメントは複数エクステントから成り立ち、 1テーブルや1インデックスは(パーティションなどで無い限り) 1セグメントに対応します。 エクステントやセグメントはテーブルやインデックスによって 変わるので5エクステントアクセスしましたといってもそれが何MB になるのか分かりにくいですがDBブロック数はdb_block_sizeパラメータ を見ればサイズが分かるのでdb_block_sizeにアクセスブロック数を 掛けるとおおよそのアクセスデータ量が分かることになります。
その他の回答 (2)
- ossan_hiro
- ベストアンサー率66% (88/132)
ブロック(というより記憶領域構造)に関しての説明は http://jibun.atmarkit.co.jp/lskill01/rensai/omsdb05/omsdb01.html が参考になるかと思います。
- entree
- ベストアンサー率55% (405/735)
「物理読み込みブロック数」とは実際にディスクから読んだブロック数。 それに対して、「論理読み込みブロック数」とはディスクだけでなく、メモリ上にキャッシュ (頻繁に参照されるブロックはすぐにメモリ上から破棄してしまわずに、しばらくメモリ上に持っていることでパフォーマンスの向上を図っている) されているブロックも含めた読み込みブロック数です。
補足
ご回答ありがとうございます。 ブロックという概念がいまいちわからないので、 できれば教えていただきたいです。 後学のために何か参考ページがあれば、それも併せて 教えていただけると助かります。 色々と注文してしまって申し訳ありません。