1

Informixpe_sizeのは何を意味し、単位は何ですか?ユニットは特定のものですか?次のように、テーブルのサイズを計算するために使用できます。sysptnextpe_sizepe_size

select dbsname, tabname, sum(pe_size )*2 / 1024 total_size 
from systabnames, sysptnext where partnum = pe_partnum 
group by 1, 2 order by 3 desc;
4

1 に答える 1

1

示されているクエリは、データベース内のテーブルに対して実行されていsysmasterます。テーブルとビューの説明は、通常sysmaster、InformixAministratorのリファレンスマニュアルに記載されています。ただし、sysptnextptn=パーティション、ext=エクステント)は文書化されていないようです。これは、一部のビューで使用されていることを意味します。表には、コメント「{内部使用のみ}」を含む詳細が記載されてい$INFORMIXDIR/etc/sysmaster.sqlます。コメントは主に、Informixが必要なときにテーブルを変更しないことを約束していないことを意味します。通常、テーブルを使用するビューは変更されませんが、通知なしにテーブルが変更される場合があります。

{ Partition Extent Descriptions }
    create table informix.sysptnext     { Internal Use Only     }    
    (    
    pe_partnum  integer,    { partnum for this partition    }    
    pe_extnum   smallint,   { extent number         }    
    pe_chunk    integer,    { chunk number for this extent  }
    pe_offset   integer,    { chunk offset for this extent  }
    pe_size     integer,    { size of this extent       }    
    pe_log      integer     { logical page for start    }    
    );

内部のエクステントサイズはページ単位です(テーブルを作成するときに指定するすべての場合、キビバイト(キロバイト)で指定します)。ページサイズは、テーブルを格納しているDB領域によって異なります。ただし、異なるページサイズで異なるDB領域を構成していない限り、どこでも同じサイズが使用されます。ページサイズが2KiB(Solaris、AIX、HP-UX、Linux)であるか4 KiB(Windows、Mac OS X)であるかは、プラットフォームによって異なります。

クエリは、割り当てられたスペースの観点からテーブルのサイズを生成することに近づくはずです。これは、行を格納するために使用されるスペースよりも大きくなります。また、ブロブスペースまたはスマートブロブスペースに格納されているブロブは考慮されません。また、(切り離された)インデックスも考慮されません。また、前述のように、さまざまなページサイズに適応するのではなく、2KiBのページサイズを想定しています。1024で除算すると、MiB(メビバイト、1メガバイトに相当する2進数)のサイズが生成されます。

私は、断片化されたテーブルについて何かを見逃した権利を留保します。断片化されたテーブルには複数のパーティションがありsystabnamesますが、テーブルとグループ化句でそれを処理する必要があります。

MODE ANSIデータベースがある場合、同じ名前で所有者が異なる2つ(またはそれ以上)の異なるテーブルがある可能性があります。クエリは、これらのテーブルを1つの報告された回答に統合します。

于 2013-01-07T07:21:55.540 に答える