We have a database which most tables utilise an inactive flag. Everytime a record is changed the active flag is set to 0 and a new record is created. This enables us to keep an auditlog of all records.

Take 1 table for example we have about 8 million records in it but only about 700,000 records of these are active.

We have been discussions recently about implementing the removal of these inactive records into audit tables.

My question really is will we expect better performance from our queries given that our tables are appropriately indexed and always include the active flag.

2 Answers 2


If all the queries includes the active flag and your indexes support this filter, removing old records should not impact queries performance.

I've some DBs that work the same and removing some milion rows helped performance just because our ad-hoc queries dodn't use the ActiveFlag.

However, the cleaning effected our maintenance and backup time.


There are indexing strategies that can make the current design perform pretty well, like partitioning and filtered indexes. So you shouldn't make the change expecting a significant performance improvement without realistic testing.

Good news is that 8 million rows is not much, so this should be quick and easy to test.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.