Wir waren auf einem dedizierten Server (Single Quad-Core, 6 GB RAM) und wechseln auf einen neuen dedizierten Server (2x Hex-Core, 32 GB RAM). Beide sind Windows Server 2008 und SQL Server 2008. Die Leistung auf dem neuen Server ist etwas schlechter als auf dem alten, langsameren Server.
Beim Testen läuft unsere ASP.NET-Anwendung 10 bis 20% langsamer. Wenn Sie einzelne teure Abfragen mit STATISTICS IO und STATISTICS TIME ausführen, wird auf dem neuen Server eine um 10 bis 20% längere verstrichene Zeit angezeigt. Das SQL-Abfrageprofil zeigt eine höhere CPU-Auslastung bei teuren Abfragen.
Der Task-Manager auf dem neuen Server zeigt, dass sqlserver.exe 22 GB RAM verbraucht, die CPU-Werte jedoch immer sehr niedrig bleiben.
Ich habe alle Statistiken, neu erstellten oder neu organisierten Indizes usw. aktualisiert. Ausführungspläne sollten zu diesem Zeitpunkt auf dem neuen Server gespeichert werden, da ich viele Tests durchgeführt habe. Wenn Indizes fehlen (ich glaube nicht), wirken sie sich gleichermaßen auf den alten und den neuen Server aus. Neu hat eine wiederhergestellte Sicherung der gleichen Daten auf dem alten.
Ich hatte erwartet, dass die Leistung auf dem neuen Server besser sein würde, aber die Last ist besorgniserregender. Wenn der alte Server auch unter Last eine bessere Leistung erbringt, was passiert dann, wenn dieser neue, etwas schlechtere Server diese Last aufnehmen muss?
Was könnte ich hier noch vermissen?
EDIT: MAXDOP auf 6 gesetzt.
Der alte Server verfügt über Betriebssysteme, Datenbanken und Tempdbs auf denselben physischen Laufwerken (RAID 10). Insgesamt 4 15k 3 Gb / s 3,5 Zoll SAS. Der neue Server verfügt über drei Laufwerkssätze: Betriebssystem unter RAID 1, Datenbank unter RAID 10, Tempdb unter RAID 5. Insgesamt 9 15 KB 6 Gbit / s 2,5-Zoll-SAS.
Der alte Server verfügt über 1 x Intel Xeon E5620 2,40 GHz Quad-Core 8-Threads (mit H / T). Der neue Server verfügt über 2 x Intel Xeon E5-2640 2,5-GHz-Sechs-Kern-12-Threads (mit H / T).
EDIT 2: Hier ist die endgültige Analyse:
Der Energieplan war ausgewogen und nicht leistungsstark. Schaltete das um.
Tempdb befand sich auf einem RAID 5, nicht auf RAID 10. Es wurde eine weitere Festplatte hinzugefügt, um zwei physisch unterschiedliche RAID 10-Konfigurationen zu erstellen, eine für Tempdb und eine für alles andere.
SQL-bezogene Dateien (mdf, ldf, ndf, bak) wurden vom Virenscan ausgeschlossen.
Alle Indizes nach dem Wechsel auf den neuen Server neu erstellt. Sie waren sehr fragmentiert - möglicherweise als Ergebnis von Sicherung, Kopie, Wiederherstellung?
Und mir wurde klar, dass der Prozessorsprung nicht so groß war. Die Abfragen werden nicht viel schneller ausgeführt, aber mit mehr Prozessoren, mehr Kernen und mehr RAM sind wir skalierbarer.