今回は、Goldの「運用管理 - データベースサーバーの構築」からの出題です。
CREATE TABLE registration (
id BIGINT PRIMARY KEY,
reg_event INTEGER NOT NULL,
reg_client INTEGER NOT NULL,
reg_date TIMESTAMP NOT NULL
);
テーブルのファイルサイズ見積りとして最も適切なものを1つ選びなさい。 1ブロックは8192バイトとし、インデックスのファイルサイズは含めないものとする。
A. 5メガバイト
B. 15メガバイト
C. 25メガバイト
D. 40メガバイト
E. 60メガバイト
※この例題は実際のOSS-DB技術者認定試験とは異なります。
1行のサイズを見積もるには、固定サイズのヘッダ(データに依存するが約28バイト)に各カラムのデータのサイズを足すことになります。
BIGINTとTIMESTAMPは8バイト、INTEGERは4バイトなので、本問の場合、1行のサイズは28+8+4+4+8=52バイトとなります。
1つのブロックに入る行数は、ブロックサイズからブロックヘッダのサイズを引いた後で、行サイズ割り算をすれば求められます。
ブロックヘッダのサイズは24バイトなので、1ブロックには、(8192-24)/52=157(小数点以下切り捨て)行のデータが入ります。
50万行ですから、500000/157=3185(小数点以下切り上げ)個のブロックが必要です。
従ってファイルサイズは8192*3185=26091520バイトとなります。
正解は C です。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.