テーブル毎の容量を知りたい
2 posters
テーブル毎の容量を知りたい
いつもお世話になります。
現在v16.4で運用しているDBですが長年の運用でデータベースパッケージの容量が30GBを超えてきました。
容量消費の大きなテーブルからデータを退避してメンテナンスをしようと思っているのですが、
テーブル毎にどの程度ディスク容量を消費しているのか知る方法ありますでしょうか?
ストラクチャアクセスコマンドなどでフィールド長を調べてレコード数で計算すればある程度概算は出てくるとは思いますが、可変長フィールドが絡むと厄介そうにも思えます。
また、インデックスファイルも肥大化しているので、こちらもテーブル毎に使用しているインデックス容量がわかればと思います。
宜しくお願い致します。
現在v16.4で運用しているDBですが長年の運用でデータベースパッケージの容量が30GBを超えてきました。
容量消費の大きなテーブルからデータを退避してメンテナンスをしようと思っているのですが、
テーブル毎にどの程度ディスク容量を消費しているのか知る方法ありますでしょうか?
ストラクチャアクセスコマンドなどでフィールド長を調べてレコード数で計算すればある程度概算は出てくるとは思いますが、可変長フィールドが絡むと厄介そうにも思えます。
また、インデックスファイルも肥大化しているので、こちらもテーブル毎に使用しているインデックス容量がわかればと思います。
宜しくお願い致します。
osaru- 投稿数 : 67
登録日 : 2017/08/14
Re: テーブル毎の容量を知りたい
4Dのデータファイルは,ブロック単位でデータを管理していますので,まったく同じデータ(合計バイト数)であっても,保存されたときの状況によって,データファイル内で占有する容量(ブロック数×ブロックサイズ)はかなり違います。フィールドのタイプや内容から計算できるのは,論理的な最小サイズであって,ディスク上のファイル(これもブロック単位でデータを管理しています)には変換できないということです。
『容量消費の大きなテーブルからデータを退避(どこに?)』することを考える前に,Get table fragmentationでテーブル毎の断片化具合を調べてみるのはいかがでしょうか。断片化しているテーブルは,必要以上にファイルサイズを「消費」しています。
さらに「パッケージの」サイズが30GBとのことですが,パッケージ内には,いろいろなファイル(ログ・リソース・キャッシュ・インデックス・バックアップなど)が含まれます。各ファイルの役目と目的に照らして,サイズが適正で正常なものか,チェックすることも重要です。
『容量消費の大きなテーブルからデータを退避(どこに?)』することを考える前に,Get table fragmentationでテーブル毎の断片化具合を調べてみるのはいかがでしょうか。断片化しているテーブルは,必要以上にファイルサイズを「消費」しています。
さらに「パッケージの」サイズが30GBとのことですが,パッケージ内には,いろいろなファイル(ログ・リソース・キャッシュ・インデックス・バックアップなど)が含まれます。各ファイルの役目と目的に照らして,サイズが適正で正常なものか,チェックすることも重要です。
miyako- 投稿数 : 487
登録日 : 2016/07/05
Re: テーブル毎の容量を知りたい
miyako様、何時もアドバイスありがとうございます。
いわゆる目安で良いので知りたいのが本音です。
フラグメンテーションも調べて見るようにしております。40%を超えたら圧縮した方が良いともありますが、圧縮しても40%を超えたままや、100%のテーブルもあったりで正直判りません。断片化が必要以上にディスクを消費しているのなら、それも含め、テーブル毎に消費量が概算でもわかると便利かなと思いました。
4DDファイルが22GB、4DIndxが4.7GB、その他諸々で合計30GBといった所でしょうか。
インデックスの再構築に小一時間かかり、24時間運用稼働しておりますと気軽に圧縮できる時間帯も無いので、消費容量とフラグメンテーションと普段の使用状況などから、退避対象のテーブルを選定できればと考えておりました。
いわゆる目安で良いので知りたいのが本音です。
フラグメンテーションも調べて見るようにしております。40%を超えたら圧縮した方が良いともありますが、圧縮しても40%を超えたままや、100%のテーブルもあったりで正直判りません。断片化が必要以上にディスクを消費しているのなら、それも含め、テーブル毎に消費量が概算でもわかると便利かなと思いました。
4DDファイルが22GB、4DIndxが4.7GB、その他諸々で合計30GBといった所でしょうか。
インデックスの再構築に小一時間かかり、24時間運用稼働しておりますと気軽に圧縮できる時間帯も無いので、消費容量とフラグメンテーションと普段の使用状況などから、退避対象のテーブルを選定できればと考えておりました。
osaru- 投稿数 : 67
登録日 : 2017/08/14
Permissions in this forum:
返信投稿: 不可