索引ファイルに影響を与えるファイル サイズ制限は次のとおりです。デフォルト形式は IDXFORMAT 8 (IEXFORMAT=0) です。
他の形式のファイルを作成するには、extfh.cfg またはコンパイラ指令の IDXFORMAT 設定を使用します。既存のファイルを他の形式に変換するには、REBUILD ユーティリティを使用します。
IDXFORMAT |
排他的 (#) |
排他的 (重複キー圧縮が有効) |
共有 (デフォルトロック) |
FILEMAXSIZE に設定できる値 |
1 |
4 GB |
2 GB |
1 GB |
4 または 8 |
2 |
4 GB |
2 GB |
1 GB |
4 または 8 |
3 |
4 GB |
2 GB |
1 GB |
4 または 8 |
4 |
4 GB |
2 GB |
1 GB |
4 または 8 |
8 および 12 |
4 GB |
2 GB |
1 GB |
4 |
8 および 12 |
256 TB |
128 TB |
256 TB |
8 |
詳細は次のとおりです。
- (#) = 排他的にファイルにアクセスするか、extfh.cfg を使用して、または LOCKTYPE 1 または 2 のコンパイラ指令設定を使用して共有ファイルにアクセスします。つまり、ファイル サイズは LOCKTYPE 1 または 2 を使用する際には影響を受けません。
- FILEMAXSIZE は extfh.cfg の設定の 1 つです (デフォルトは 8)。
- IDXFORMAT 8 または IDXFORMAT 12 ファイルの場合のみ、extfh.cfg の FILEPOINTERSIZE 設定を 8 に増やせば、ファイル サイズの上限を次のように緩和できます。
IDXFORMAT |
排他的 (#) |
排他的 (重複キー圧縮が有効) |
共有 (デフォルト ロック) |
FILEMAXSIZE |
8 および 12 |
16 EB (エクサバイト) |
8 EB |
4 EB |
8 |
注:
- 上記の数字は、ファイルをメモリに格納するために使用されるポインターのサイズによって決まります。次に例を示します。
32 ビット |
= |
2^32 |
= |
4,294,967,296 バイト |
= |
4 GB (ギガバイト) |
48 ビット |
= |
2^48 |
= |
281,474,976,710,656 バイト |
= |
256 TB (テラバイト) |
64 ビット |
= |
2^64 |
= |
18,446,744,073,709,551,616 バイト |
= |
16 EB (エクサバイトまたはメガ テラバイト) |
- LOCKTYPE=1 と LOCKTYPE=2 は、ファイル共有によるファイル サイズの制限を回避するために採用された設定です。
- IDXFORMAT 8 および IDXFORMAT 12 の両方の形式では、FILEMAXSIZE を 8 に設定すると、デフォルトのロック メカニズムによりサイズが非常に大きいファイルもサポートされます。そのため大容量ファイルには、大容量ファイルに LOCKTYPE 1 または 2 も必要とする他の形式ではなく、IDXFORMAT 8 または IDXFORMAT 12 を使用することを推奨します。なお、LOCKTYPE=1 にはロックされたデータの読み取りができないという欠点があり、LOCKTYPE=2 にはロックを含む .LCK ファイル用に余分なファイル ハンドルを使用するという欠点があります。