Hoher Anstieg der SQL Server-CPU nach dem Hinzufügen einer Datenbank

7

Ich habe gerade eine "neue" Datenbank zu meinem Server hinzugefügt (2005), ich habe von einem toten SQL2000-Server zu meinem aktiven Server (2005) wiederhergestellt und die Kompatibilität auf 90 geändert (SQL Server 2005). Meine durchschnittliche CPU hatte auf 1600 48% Verbindungen, nachdem ich die Datenbank von meiner Seite wiederhergestellt und die Verbindungszeichenfolge so geändert hatte, dass die Site mit dem aktiven Server funktioniert. Die Hölle ist losgebrochen. Meine Verbindungen sind im Durchschnitt geblieben. 1600 aber meine CPU stieg auf einen Durchschnitt. von 70%. Ich dachte ok, ich habe einige Optimierungsprobleme, also habe ich alle Indizes neu erstellt und einen Profiler für die "neue" Datenbank gestartet, aber leider habe ich mich in einem Durchschnitt geirrt. Die Stunde hatte 100 SP-Läufe und alle mit weniger als 50 ms CPU und der höchsten Anzahl von Lesevorgängen waren 2,2 KB (keine Schreibvorgänge und Dauer weniger als eine Sekunde für die meisten, höchste Dauer 3 Sekunden).

Ich würde gerne Anweisungen erhalten, was ich als nächstes überprüfen soll, SQL Server-Seite oder Web-Seite.

Avi
quelle
Ich habe die Mods von dba.se gefragt, ob diese Frage migriert werden soll. Ihre Frage ist jedoch etwas vage und wird schwer zu beantworten sein, ohne mehr über die Anwendung zu wissen, die diese Datenbank verwendet, und über die Interna der Datenbank selbst.
Kev
1
Klingt so, als hätten Sie es nicht geschafft, alle ausgeführten Anweisungen zu verfolgen. 100 SP-Anrufe pro Stunde sind viel zu niedrig.
usr
Der einzige Filter, den ich habe, ist die Datenbank-ID und die CPU oben oder Gl. 1. Dieser Teil der Website ist nicht sehr aktiv, daher sind 100 SP pro Stunde in Ordnung. Aus diesem Grund habe ich die Frage gestellt. Welche Art von Informationen benötigen Sie? Dieser Server ist geladen. Kein Mem-Cache in der "neuen" DB. Diese Menge an SP-Ausführung sollte unseren Computer nicht anstechen (4-Kern-Xenon-32-GB-Mem). Zuerst dachte ich, es sei meine Vorstellungskraft, also habe ich die Datenbank offline geschaltet und alle Sever-Parameter im Perfmon wurden gesenkt. Ich frage nicht unbedingt nach einer Lösung, einige andere Methoden oder Ideen, was ich noch überprüfen muss, sind ebenfalls nützlich.
Avi
2
Hat die neue Datenbank einige Wack-Optionen festgelegt? Vielleicht ist das automatische Schließen aktiviert?
Jon Seigel

Antworten:

4

Lesen Sie diesen Artikel von Paul Randal über Wartestatistiken. Mit der DMV sys.dm_os_wait_stats (Data Management View) können Sie herausfinden, worauf der SQL Server wartet. Es klingt so, als ob es sich um eine Änderung des Abfrageplans zwischen den Versionen handeln könnte. Aber es gibt viele Dinge, die es sein könnten. Könnte auch Speicher sein. Wartestatistiken sollten helfen. Überprüfen Sie, ob die MAXDOP-Einstellung zwischen den Versionen nach Möglichkeit unterschiedlich war. Sie haben angegeben, dass der ursprüngliche Server gestorben ist, sind sich jedoch nicht sicher, ob Sie die Serverkonfiguration für DR-Zwecke in einem Repository gespeichert haben. Wenn es sich um ein hochtransaktionales System handelt, kann Parallelität Sie verlangsamen. Stellen Sie sicher, dass Sie wissen, was Sie tun, bevor Sie Änderungen an MAXDOP vornehmen.
Überprüfen Sie auch diesen Artikel aus diesem Thread auf SOEs wird Ihnen helfen, die Abfragen mit der schlechtesten Leistung zu finden. Weitere Informationen finden Sie in Brent Ozars Blitz-Skript. Ich hoffe, dies hilft. Viel Glück. Chris

CleanFill
quelle
1

Ich beantworte diese Frage selbst, weil ich die richtige Richtung dafür habe. Ich habe die meisten Artikel gelesen, auf die sich CleanFill bezieht, habe die Statistiken und FT neu erstellt, außerdem hat die "neue" DB einige Wack-Optionen (das war der Begriff, den Jon Seigel verwendete), zum Beispiel war Auto Shrink wahr. Die Kombination beider Dinge hat funktioniert, mein Server ist mit der "neuen" DB wieder normal.

Vielen Dank.

Avi
quelle
Ich bin froh, dass du das lösen konntest!
Jon Seigel