Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Approaching 2 gig
Message
From
31/12/2006 15:35:32
 
 
To
29/12/2006 11:08:57
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
01068294
Message ID:
01181127
Views:
23
Hi Michael,
>Thread.cdx 48,317 KB
>Thread.dbf 113,993 KB
>Thread.fpt 893,656 KB

I recently had to quick-fix some tables with redistributing the characters of fields.

The numbers you posted approximate the Poisson-distribution I was expecting/hoping for.
Memo fields are great if many fields are empty on potentially large fields. In your case here you still have a great vriation of field length, but nearly all fields have at least a few bytes, which could be put into a regular char field. This reduces the fpt length at start more than later on, as the "next" bytes will be empty on at least some fpt-records, so the equalizing/saving effect diminishes.
If you add a 250-Char field to your dbf and fill it with the first 250 bytes of the long memo field, your dbf will grow to 396 MB and the fpt will shorten to approx. 670 MB.
Add another 100-Char field to the dbf, and the fpt will shrink to about 540 MB, while the dbf increases to about 510 MB. Thus you shorten the fpt by about 345 MB while increasing the dbf by about 385 MB - which is pretty good as the sizes are almost equal.

Since only one field is involved, resturucturing access to a combination of iif(empty()... should be possible to handle either in a function or a few bracketing constants - so if you are backed into a corner this method gives you nearly 40% room again.

regards

thomas
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform