I have a 160GB database on SQL 2000 (SP4). In an attempt to speed up a stored procedure I restored the database on another server so that I could test with it. The same procedure that ran 45 minutes on the LIVE database took seconds on the TEST database!. I couldnt believe it. The test server has the same # CPUS and same memory (virutal), same disk system (SAN), same SQL version / service pack. The query does a simple DELETE statement on a large number of tables in the database. The DELETE statement does not join other tables. It only deletes where style_id (INT) = X for each table. On the LIVE server I already reindex the tables on a regular basis but I did it again just prior to running the query. I tried updating statistics on the tables with FULLSCAN. The delete statements are run in a stored procedure so I used sp_recompile on the stored procedure and even reboot the server to make sure. I thought perhaps ESX host the LIVE server ran on was performing better than the TEST even though they are identical hosts so I swapped the host the virtual machines were running on with no improvement. Confident the issue must be an OS fragementation issue I used contig.exe and even tried DisKeeper with no real improvement. The database has been around for about years and obviously grown over time. So here is the question...Could the TEST server be performing that much better just because I restored the database from a backup? Do I need to run something like DBCC SHRINKDATABASE WITH NOTRUNCATE on the LIVE server to replicate?