Informixpe_size
のは何を意味し、単位は何ですか?ユニットは特定のものですか?次のように、テーブルのサイズを計算するために使用できます。sysptnext
pe_size
pe_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;
Informixpe_size
のは何を意味し、単位は何ですか?ユニットは特定のものですか?次のように、テーブルのサイズを計算するために使用できます。sysptnext
pe_size
pe_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;
示されているクエリは、データベース内のテーブルに対して実行されていsysmaster
ます。テーブルとビューの説明は、通常sysmaster
、InformixAministratorのリファレンスマニュアルに記載されています。ただし、sysptnext
(ptn
=パーティション、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つの報告された回答に統合します。