• ベストアンサー

Oracle(8i) 各テーブルの使用量の調べ方

バージョンはOracle8iです。 各表の使用量を調べたいのですが、OEMを見た限りでは表領域の使用量は出てくるのですが、表単位の使用量は表示されないようです。 少なくともSQLで調べる方法があるかな?と思っているのですが、どなたがご存知の方教えて頂けますでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.1

ブロック単位であれば、出せます。  select table_name, owner, blocks from all_tables;  において、blocksフィールドがそうです。  ただし、ANALYZE文で、データベースを分析しておく必要があります。  単位はブロック数です。表領域のブロック長はOEMで調べられますよね。  また、使用されているブロックは100%使用されていることはありませんので、データの大きさという意味では誤差は結構あります。が、占有しているという意味では、大きさは正確です。(なぜなら、同じブロックを別の表が使うことはあり得ないからです。)

--anko--
質問者

お礼

mitoneko様 早速ご回答頂き、ありがとうございました。分かりやすく教えて頂き、大変助かりました。 この度、システム移行作業なのですが、幾つかの表にてBLOBの領域があり、またデータ量がやたらと多く、どうやって容量算定しているのか経験者に聞けば、”勘で”、とか言われて大変困っていたところです(そんな勘は本当に全くないので)。 分析は、「ANALYZE TABLE tablename COMPUTE STATISTICS」ですね。 またはOEMでも表単位に解析?分析?みたいなことができるようでしたので、やってみます。 本当にありがとうございました。また困ったら宜しくお願いします。