<p>There is a SqlServer2000 Database we have to update during weekend.</p>

<p>It's size is almost 10G.</p>

<p>The updates range from Schema changes, primary keys updates to some Million Records updated, corrected or Inserted.</p>

<p>The weekend is hardly enough for the job.</p>

<p>We set up a dedicated server for the job, 
turned the Database SINGLE_USER
made any optimizations we could think of: drop/recreate indexes, relations etc.</p>

<p>Can you propose anything to speedup the process?</p>

<p>SQL SERVER 2000 is not negatiable (not my decision). Updates are run through custom made program and not BULK INSERT.</p>

<p>EDIT:</p>

<p>Schema updates are done by Query analyzer TSQL scripts (one script per Version update)</p>

<p>Data updates are done by C# .net 3.5 app.</p>

<p>Data come from a bunch of Text files (with many problems) and written to local DB.</p>

<p>The computer is not connected to any Network.</p>

What exactly does this "custom made program" look like? i.e. how is it talking to the data? Minimising the amount of network IO (from a db server to an app) would be a good start... typically this might mean doing a lot of work in TSQL, but even just running the app on the db server might help a bit...
If the app is re-writing large chunks of data, it might still be able to use bulk insert to submit the new table data. Either via command-line (bcp etc), or through code (
```
SqlBulkCopy
```
in .NET). This will typically be quicker than individual inserts etc.
But it really depends on this "custom made program".