D
Dmitry Akselrod
Hi,
I have a recursive application that walks through a directory structure on a
Hard Drive and writes various file information to a single table in an
Access 2003 database. I am opening a connection to the database at the
start of a worker thread that does all of the work. The connection is
closed when the worker thread completes. I am using a single method to
write a bunch of information to the table.
The application flies initially. However, when there are approximately
500,000 rows in the database, performance begins to decrease exponentially.
After about 800,000 or 900,000 rows, the program is only writing about 2/3
rows per second. If I stop the process and create a new Access DB, the
performance issues disappear until about 500,000 rows are reached again.
Usually the database size is around 150 mb at that time. Interestingly
enough, restarting the application without a new database does not improve
the performance.
Is this just the nature of Access? I am thinking about writing to a new
table once I pass 500,000 rows, or should I create a entirely new database?
Or is there an Access performance tweak for my issue?
Unfortunately, MSDE or SQL is not an option, since I need the app to be
highly portable.
Thanks,
Dmitry
I have a recursive application that walks through a directory structure on a
Hard Drive and writes various file information to a single table in an
Access 2003 database. I am opening a connection to the database at the
start of a worker thread that does all of the work. The connection is
closed when the worker thread completes. I am using a single method to
write a bunch of information to the table.
The application flies initially. However, when there are approximately
500,000 rows in the database, performance begins to decrease exponentially.
After about 800,000 or 900,000 rows, the program is only writing about 2/3
rows per second. If I stop the process and create a new Access DB, the
performance issues disappear until about 500,000 rows are reached again.
Usually the database size is around 150 mb at that time. Interestingly
enough, restarting the application without a new database does not improve
the performance.
Is this just the nature of Access? I am thinking about writing to a new
table once I pass 500,000 rows, or should I create a entirely new database?
Or is there an Access performance tweak for my issue?
Unfortunately, MSDE or SQL is not an option, since I need the app to be
highly portable.
Thanks,
Dmitry