Re: Help on rowid (SE 5.0) - Reminder
Posted in 1996
Maybe I'm misunderstanding the question, but to summarise it I guess it is: >> In Informix SE is performance affected after a large number of >> rows are deleted from a table. To answer this you must understand SE is using CISAM files to store tables and in CISAM there are definate performance hits in files that contain a lot of deleted rows, and the degradation can be severe! In the UK various accounting companies I used to know would delete the CISAM file and recreate it at month and/or year end specifically because of this problem. In CISAM deleted records are left in the file with a 1 char flag at the end of the record designating it is deleted. When searching for records, the B-Tree gets severely affected and out of balance by these deleted records. The rowid itself in C-ISAM is stored in each tables index file as a normal long integer. This value is incremented as a new record is inserted. To read (SELECT) a record by row-id CISAM can avoid reading the index nodes by positioning a file pointer to the position calculated as: rowid * (record length + 1) 1 is for the deleted flag