今回は、Goldの「性能監視 - テーブル/カラム統計情報」からの出題です。
A. pg_classでは、テーブルのほか、ビューやインデックスの情報も扱う。
B. pg_classには、常に最新の情報が格納されている。
C. pg_class内の列であるreltuplesにはテーブル内の行数が格納されるが、この値は推測値である。
D. pg_statsは、カラム統計情報を扱うテーブルである。
E. pg_statsで参照できる情報の中には実データの一部が格納されるため、一般のユーザは参照できない。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
テーブル/カラム統計情報のうち、pg_classおよびpg_statsに関する問題です。
テーブルや列の情報などのスキーマメタデータと内部的な情報を格納する場所のことをシステムカタログと呼び、それ自体もPostgreSQLのテーブルの形式で管理されています。
pg_classはシステムカタログで、テーブルをはじめとして、ビューやインデックスなどの情報を扱っています。
名称・所有者・テーブル空間といった静的な情報や、格納行数(reltuples)といった統計情報などが格納されています。
これらの統計情報はプランナが使用する推測値で、VACUUMやANALYZEにより更新されます。
そのため、常に最新の情報が格納されているわけではありません。
以上をA~Cに照らし合わせると、AとCは正解、Bは不正解となります。
pg_statsは、システムカタログであるpg_statisticの情報にアクセスするためのビューです。
pg_statisticでは、カラムに関する統計情報を扱っています。
例えば、あるカラムに登録されている値とその分布、といった情報が格納されており、問い合わせ時にプランナがこの情報を参照しています。
pg_statisticは、このように実データの一部が格納されることになるため、誰でも参照できるようになっていると機密保持上問題です。
そのため、pg_statisticは一般ユーザは参照できません。
代わりに、一般ユーザが参照しても問題ない範囲に限定したビューを用意しており、それがpg_statsです。
以上をD・Eに照らし合わせると、D・Eともに不正解となります。
正解は A と C です。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.