テーブル毎の容量を知りたい

Go down

テーブル毎の容量を知りたい Empty テーブル毎の容量を知りたい

投稿 by osaru on 2018-12-26, 4:33 pm

いつもお世話になります。

現在v16.4で運用しているDBですが長年の運用でデータベースパッケージの容量が30GBを超えてきました。
容量消費の大きなテーブルからデータを退避してメンテナンスをしようと思っているのですが、
テーブル毎にどの程度ディスク容量を消費しているのか知る方法ありますでしょうか?

ストラクチャアクセスコマンドなどでフィールド長を調べてレコード数で計算すればある程度概算は出てくるとは思いますが、可変長フィールドが絡むと厄介そうにも思えます。

また、インデックスファイルも肥大化しているので、こちらもテーブル毎に使用しているインデックス容量がわかればと思います。

宜しくお願い致します。

osaru

投稿数 : 58
登録日 : 2017/08/14

トップに戻る Go down

テーブル毎の容量を知りたい Empty Re: テーブル毎の容量を知りたい

投稿 by miyako on 2018-12-27, 10:29 am

4Dのデータファイルは,ブロック単位でデータを管理していますので,まったく同じデータ(合計バイト数)であっても,保存されたときの状況によって,データファイル内で占有する容量(ブロック数×ブロックサイズ)はかなり違います。フィールドのタイプや内容から計算できるのは,論理的な最小サイズであって,ディスク上のファイル(これもブロック単位でデータを管理しています)には変換できないということです。

『容量消費の大きなテーブルからデータを退避(どこに?)』することを考える前に,Get table fragmentationでテーブル毎の断片化具合を調べてみるのはいかがでしょうか。断片化しているテーブルは,必要以上にファイルサイズを「消費」しています。

さらに「パッケージの」サイズが30GBとのことですが,パッケージ内には,いろいろなファイル(ログ・リソース・キャッシュ・インデックス・バックアップなど)が含まれます。各ファイルの役目と目的に照らして,サイズが適正で正常なものか,チェックすることも重要です。

miyako

投稿数 : 348
登録日 : 2016/07/05

トップに戻る Go down

テーブル毎の容量を知りたい Empty Re: テーブル毎の容量を知りたい

投稿 by osaru on 2018-12-27, 1:07 pm

miyako様、何時もアドバイスありがとうございます。
いわゆる目安で良いので知りたいのが本音です。

フラグメンテーションも調べて見るようにしております。40%を超えたら圧縮した方が良いともありますが、圧縮しても40%を超えたままや、100%のテーブルもあったりで正直判りません。断片化が必要以上にディスクを消費しているのなら、それも含め、テーブル毎に消費量が概算でもわかると便利かなと思いました。

4DDファイルが22GB、4DIndxが4.7GB、その他諸々で合計30GBといった所でしょうか。
インデックスの再構築に小一時間かかり、24時間運用稼働しておりますと気軽に圧縮できる時間帯も無いので、消費容量とフラグメンテーションと普段の使用状況などから、退避対象のテーブルを選定できればと考えておりました。

osaru

投稿数 : 58
登録日 : 2017/08/14

トップに戻る Go down

テーブル毎の容量を知りたい Empty Re: テーブル毎の容量を知りたい

投稿 by Sponsored content


Sponsored content


トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可