in reply to How can I improve the sql statements applying efficiency
Each time you insert or delete a record, the database server has to ensure that indexes are properly maintained, along with a *lot* of housekeeping. Since each SQL statement has to be processed one at a time, most of the housekeeping is redundant and wasted.
If you want to get it to be as fast as possible, then you should split your file into two: The first one would simply be a formatted list of the records you want inserted into the database. Then you can insert the data using BCP (a bulk record loader).
The second file should simply be a list of primary keys that you want to delete. Create a temporary table to hold them, and use BCP to insert the keys into the list. Then you can delete all the records using a single SQL statement, something like:
delete the_table where the_key in ( select the_key from temporary_table )
Then, of course, you can drop your temporary table.
With a reasonable database server and table definitions, I'd expect you to get the time to less than a half hour.
...roboticus
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: How can I improve the sql statements applying efficiency
by littlehorse (Sexton) on Jul 24, 2010 at 09:42 UTC | |
by Marshall (Canon) on Jul 24, 2010 at 19:30 UTC | |
by littlehorse (Sexton) on Jul 25, 2010 at 07:09 UTC | |
by Marshall (Canon) on Jul 25, 2010 at 09:39 UTC | |
by roboticus (Chancellor) on Jul 24, 2010 at 20:41 UTC | |
by littlehorse (Sexton) on Jul 25, 2010 at 07:38 UTC |