- Local time
- Today, 19:44
- Joined
- Feb 19, 2013
- Messages
- 17,755
@The_Doc_Man - so what would that look like with two strings? And what about the effect on the index for a string?
@The_Doc_Man - so what would that look like with two strings? And what about the effect on the index for a string?
|LONG|string1-size&pointer-to-{X}|string2-size&pointer-to-{Y}|DATE|{X}string1-actual|{Y}string2-actual|
No, the record is rewritten in the same spot if it is the same size or smaller. Only if it is bigger, is it written to the end of the tab.e.
Doc, if the record were not rewritten to the same spot, the table would always be out of sequence.
the table will be constantly scrambled and that just doesn't happen.
I imagine if a changed record was written in place you would see the data change. If you write the record at the end of the current file, then the original record might not be cleared. It would (or could) just be left in position with the original data, but there would be no pointer to it. Maybe the space couldn't actually get reused until after a compact operation.
I agree with your official statement. However, if some folks hadn't poked around, we would not have the tools we have that can take advantage of the internal structure. MS certainly never bothered to create them for us.
At this point, you see the same number of records you started with but they are in a different internal order with the updated record apparently at the end of the list of table records. There is now an unthreaded record "floating" in the memory that was formerly part of the table, contributing to bloat until such time as the next Compact & Repair does its thing.
I don't know if Jet/ACE are multi threaded