Форум » [x]Harbour » Max размер базы (DBF) ADS » Ответить

Max размер базы (DBF) ADS

Dima: В доке пишут (я о размере файла) , что 1 файл не более 2 гиг , под NTFS. Решил проверить. Поэтапно довел размер до 4 627 729 075 байт , в конце делал dbseek для теста. Seek работает , ни чего не падает. ADS 10.x PS Получается доке нельзя верить или я что то пропустил ?

Ответов - 7

Dima: Загнал еще 5 лямов записей. Размер вырос до 5 607 729 271 байта. База открывается , Dbseek работает норм...

Dima: Ответ нашел. [pre2] File Size Support Greater Than 4 Gigabytes The Advantage proprietary file format (ADT/ADM/ADI) can support files sizes greater than 4 GB when used on NTFS or Linux file systems. Beginning with v8.0, Advantage Database Server can utilize DBF tables and their associated memo files (FPT and DBT) with file sizes greater than 4 GB. Index files associated with DBF tables (CDX, IDX, NTX) cannot exceed the 4 GB limit due to file format limitations, but this problem can be avoided by using multiple index files. When using DBF tables over 4 GB in size, you must use Advantage Proprietary Locking. Also, note that CA-Clipper applications must turn off rights checking (AX_RightsCheck( .F. )) when opening tables that exceed 4 GB in size. [/pre2]

Andrey: Интересно, а какой максимальный размер DBF/CDX для Харбора ? Вроде давались раньше цифры, но уже забылись...

Dima: Andrey а тут пишут core-master\doc\xhb-diff.txt + locks.txt

Andrey: Вот это что ли ? ... Тогда круто ! [pre2]In both compilers maximal file size for tables, memos and indexes is limited only by OS and file format structures. Neither Harbour nor xHarbour introduce own limits here. The maximal file size for DBFs is limited by number of records 2^32-1 = 4294967295 and maximal record size: 2^16-1 = 65535 what gives nearly 2^48 = 256TB as maximal .dbf file size. The maximal memo format size depends on used memo type: DBT, FPT or SMT and size of memo block. It's limited by maximal number of memo blocks = 2^32 and size of memo block so it's 2^32*<size_of_memo_block>. The default memo block size for DBT is 512 bytes, FPT - 64 bytes and for SMT 32 bytes. So for standard memo block sizes the maximum are: DBT->l2TB, FPT->256GB, SMT->128GB. The maximal memo block size in Harbour is 2^32 and minimal is 1 byte and it can be any value between 1 and 65536 and then any number of 64KB blocks. The last limitation is introduced as workaround for some wrongly implemented in other languages memo drivers which were setting only 16 bits in 32bit field in memo header. Most of other languages has limit for memo block size at 2^15 and the block size has to be power of 2. Some of them also introduce minimal block size limits. If programmers plans to share data with programs compiled by such languages then he should check their documentation to not create memo files which cannot be accessed by them.[/pre2]

Dima: А почитай еще по локам , второй документ. В той же папке.

Andrey: Понял... [pre2]HARBOUR 32-bit locking ================ DBF FLOCK SIZE: 294967295 => maximum records: 294'967'295 maximum file size in non POSIX systems: 4'000'000'000 HARBOUR 64-bit locking DBF FLOCK SIZE: 0xfffffffeUL => maximum records: 4'294'967'294 maximum file size: no limits created by locks [/pre2]

полная версия страницы