it-swarm.com.de

SQL Server 2016-CPU mit hohem Leerlauf und Abfragen extrem langsam

Ich habe eine ca. 10 Tage alte Installation von WinServer2012R2 und SQL Server Express 2016 zum Testen. Ich bin der einzige Benutzer auf diesem Computer. Eine Datenbank mit einem .bak von SQL Server 2005 von ~ 250 MB wird ohne Probleme wiederhergestellt. Nach einem Neustart des Computers verwendet der Prozess "SQL Server NT - 64 Bit" 0% CPU.

Nach ein paar Minuten oder Stunden und einigen einfachen Abfragen (keine Updates/Einfügungen!) Von der SSMS-CPU-Auslastung von "SQL Server NT - 64 Bit" springt plötzlich auf ~ 15% und bleibt dort, auch im Leerlauf. Ab diesem Zeitpunkt dauern Abfragen, die normalerweise weniger als eine Sekunde dauern, plötzlich 2 Minuten. Während einer tatsächlichen Abfrage steigt die CPU-Auslastung NICHT an. Der Server wird in diesem Zustand praktisch unbrauchbar.

Nur das Verbinden von SQL Server Profiler dauert dann> 30 Sekunden. Neben meinen eigenen Abfragen werden nur sehr wenige Abfragen von SQLServerCEIP/SQLTELEMETRY angezeigt, ~ 3 pro Minute.

Ein Neustart von SQL-Server löst das Problem nicht. Die CPU-Auslastung springt direkt auf ~ 15% zurück. Auch nach Stunden wird SQL-Server nicht wiederhergestellt. Nur ein Neustart des gesamten Computers löst das Problem.

Da es sich um eine "out of the box" -Installation handelt, gibt es nur eine kleine Datenbank, praktisch keine Abfragen, nur mich als Benutzer und wahrscheinlich keine Sperren. In den vielen Artikeln zu regulären SQL Server-Leistungsproblemen wird über viele Dinge gesprochen, die nicht zutreffen trifft hier nicht wirklich zu. Es scheint, als ob SQL-Server ausschließlich sich auf eine interne Aufgabe konzentrieren möchte.

Dies ist eine virtuelle Maschine mit 2 GB RAM und Dual Xeon bei 2 GHz. Ich habe auch VS2016 drauf und es ist wirklich schnell. Kein Antivirus, nicht einmal Windows Defender. Schon spät hier. Ich werde das versuchen sp_whoisactive morgen. Ich frage mich wirklich, WAS SQL-Server IS dort tut ... Auf dem vorherigen Computer mit 1 GB lief dieselbe Datenbank 10 Jahre lang ohne Probleme unter SQLServer2005 ...

Ich bin kein SQL-Profiler-Experte. Wo soll ich anfangen zu suchen?

9
Andreas Steidle

Da Ihre CPU-Auslastung gering ist (und Sie einen großartigen CPU-Satz haben), würde ich zuerst den Speicherdruck prüfen. Mit SQL Express 2016 sind Sie auf 1410 MB Arbeitsspeicher beschränkt, aber Ihr VM hat nur 2 GB. Geben Sie Ihrem VM 1 GB mehr Speicher) und prüfen Sie, ob dies hilfreich ist Sie können auch Ihr SQL Server-Protokoll überprüfen, wenn der Speicher in eine Datei ausgelagert wird.

Wenn dies nicht funktioniert, setzen Sie die Datenbankeinstellung LEGACY_CARDINALITY_ESTIMATION auf ON. Referenz: Verwenden von DB Compatibility Level 130 mit Old CE in SQL Server 2016 . Wir sind mit einigen unserer Upgrades darauf gestoßen. Die Ergebnisse variieren mit jeder Datenbank.

3
fx1974