I have a SQL database that we are moving to a machine with a faster
processor and SDRam to try to speed things up. I've run into a problem that
I can't seem to fix. The new server is actually slower. Below are the
technical differences:
OLD SERVER: 12GB Hard Drive, Windows NT Server, SQL 7.0, 450mghz Pentium
II, 128MB RAM
NEW SERVER: 18GB Hard Drive, Windows 2000, SQL 7.0, 500mghz Pentium III,
256MB SDRAM
To move the database, instead of importing tables and views, etc., I copied
the mdf and ldf files from the MSSQL7\Data folder on the old server and
pasted them into the same folder on the new server. This maintained all of
my indexes. I then made sure that the server properties were set the same
way on both machines and did the same for the database settings.
I have run query optimizer on both the old and new servers for a few of the
queries and what I have found is that on the old server, 92% of the
processing time is associated with a sort. The old server does an index
SEEK and a clustered index SEEK and then does a NET LOOP/INNER JOIN, which
comprise the remaining 8% of the processing time.
The new server does an index SEEK and a clustered index SCAN and then does a
HASH MATCH/INNER JOIN. The clustered index scan takes 20%, and the HASH
MATCH takes 74%. The old server runs the process in about 5 minutes. The
new server takes about 7 hours.
Any ideas on this one?
--
Brian M. Etheridge
Project Manager, MIS