SQL Server Management Studio öffnet langsam neue Fenster

29

Nach dem Upgrade von SQL Server und Management Studio von 2008 auf 2012 ist Management Studio 2012 sehr langsam, wenn neue Abfragefenster und Dialogfelder geöffnet werden.

Selbst das Klicken mit der rechten Maustaste auf Tabellen ist langsam. Normalerweise dauert es mindestens 5 Sekunden, bis ich irgendetwas in einem Fenster tun kann. Dies geschieht jedes Mal, auch wenn ich zweimal hintereinander dasselbe Fenster öffne. Warum passiert das und wie kann ich es beheben?

Andere Anwendungen stellen sehr schnell Verbindungen zur Datenbank her.

Dinge, die ich ausprobiert habe, die nicht geholfen haben:

  • Ein Hit bei Google, bei dem ich meine hostsDatei ändern muss
  • Zurücksetzen der benutzerdefinierten SSMS-Einstellungen
  • Aktualisieren von Grafiktreibern, Deaktivieren der Hardwarebeschleunigung und Deaktivieren von DirectX
  • Deaktivieren des biometrischen Authentifizierungsdienstes (ich habe ihn nicht installiert).

Mein Computer sollte mehr als schnell genug sein und ich habe auch 16 GB RAM. Meine Hardware sollte definitiv kein Problem sein. Es sieht so aus, als ob SSMS auf etwas wartet - ich kann andere Programme problemlos bedienen, während dies geschieht.

Ich habe nicht die Möglichkeit, das Update für SQL Server 2012 CU1 zu installieren, da das Risiko von Fehlern bei der Installation von Hotfixes besteht und ich das derzeit nicht riskieren kann.

David S.
quelle
Ich sehe dieses Verhalten nicht. Wenn ich dann weitere Nachforschungen anstellen würde, könnte ich versuchen (1) den Prozessmonitor zu verwenden, um zu sehen, was der Prozess tut und ob dies Hinweise gibt. (2) Verwenden von SQL Server Profiler, um festzustellen, ob eine der von SSMS gesendeten Abfragen eine hohe Dauer hat (z. B. Blockieren) Der Call-Stack enthüllte alles.
Martin Smith

Antworten:

11

Start von SQL Server Management Studio

Beim Start von Microsoft SQL Server Management Studio (SSMS) wird versucht, eine Verbindung zur Zertifikatsperrliste (Certificate Revocation List, CRL) von Microsoft herzustellen:

http://crl.microsoft.com/pki/crl/products/MicrosoftRootAuthority.crl

Die zugrunde liegenden .NET-Komponenten von SSMS versuchen, eine Verbindung zur Zertifikatsperrliste herzustellen, und SSMS kann dies nicht. Dies verlangsamt den gesamten Ladevorgang. (15 Sekunden pro Zertifikat anscheinend)

Ok, hier ist was passiert. SSMS hat einen hohen Prozentsatz an verwaltetem Code. Der gesamte Code wird bei Auslieferung signiert. Beim Start (wenn diese Einstellung aktiviert ist) versucht die .Net Runtime, sich mit crl.microsoft.com in Verbindung zu setzen, um sicherzustellen, dass das Zertifikat gültig ist. . Wenn keine Internetverbindung besteht oder Probleme bei der Kontaktaufnahme mit dem Zertifikatssperrlistenserver auftreten, verzögert dies den SSMS-Start.

Referenz: FAQ, Warum dauert der Start von SSMS 45 Sekunden? (MSDN Blog)

Ein Problem, das dieses Problem verursachen kann, besteht darin, dass das .NET Framework nicht auf die Website crl.microsoft.com zugreifen kann, wenn der Server keinen Internetzugang hat, um zu überprüfen, ob die digitalen Signaturen zum Signieren der Binärdateien für verwaltete Anwendungen verwendet wurden sind gültig. Jede Zertifikatsprüfung hat in der .NET-Laufzeitimplementierung ein Timeout von 15 Sekunden. Abhängig von den installierten Funktionen kann dies zu einer Minute Startzeit für Management Studio führen.

Referenz: Startzeit von SQL Server Management Studio (MSDN Blog)

Lösungen

Sie können einen Teil des Problems umgehen, indem Sie das Zertifikat direkt herunterladen, indem Sie den Link in Ihren Browser eingeben und das Zertifikat dann in Ihre Zertifikatsdatenbank importieren

  • ODER -

Sie können die Firewall Ihres Unternehmens neu konfigurieren, um Verbindungen zur CRL von Microsoft zuzulassen

  • ODER -

Sie können Ihre persönliche Antivirus- / Firewall neu konfigurieren, um Verbindungen zur Microsoft-CRL zuzulassen

  • ODER -

Sie können die Firewall Ihres Unternehmens so konfigurieren, dass eine Zeitüberschreitung für Anforderungen, die auf die CRL von Microsoft zugreifen, schneller an Ihren Client gesendet wird.

  • ODER -

Sie können den Internet Explorer so konfigurieren, dass in den erweiterten Einstellungen nicht mehr die Sperrung des Publisher-Zertifikats überprüft wird.

( Details siehe Blogs 1 und 2 )

John aka hot2use
quelle
7

Ich habe die gleiche Erfahrung wie Sie, wenn ich mich mit dem Servernamen "./" verbinde. Zum Glück habe ich festgestellt, dass beim Herstellen einer Verbindung mit dem Servernamen "(lokal)" keine Leistungseinbußen auftreten. Möglicherweise liegt ein Problem damit vor, wie SSMS 2012 den Server durch "./" auflöst.

Edit: Ich glaube nicht, dass es mit SSMS zusammenhängt, da ich die Langsamkeit mit ./ in einer ADO.NET-Verbindung reproduzieren kann.

LorentzM
quelle
6

Möglicherweise hat SSMS Einstellungen importiert, die nicht mehr korrekt behandelt werden können (z. B. Verbindungen zu einem Server oder einige Add-In-Einstellungen).

Es gibt eine brutale Möglichkeit, benutzerdefinierte SSMS-Einstellungen zurückzusetzen.

Schließen Sie SSMS und wechseln Sie in den Ordner:

C:\Users\YOURWINLOGINNAME\AppData\Roaming\Microsoft\SQL Server Management Studio\

Sie finden den Unterordner "11.0". Benennen Sie es in "11.0_" um, damit Sie es immer wieder umbenennen können. Starten Sie jetzt SSMS - es wird saubere Einstellungen neu erstellen und möglicherweise wird Ihr Problem gelöst. Wenn nicht - löschen Sie neu generiertes "11.0" und benennen Sie "11.0_" wieder in "11.0" um.

Dies kann auch ein Verhalten einiger Add-Ins sein, das nach dem Upgrade beschädigt wurde. Add-Ins registrieren sich als Handler für einige Befehle oder Ereignisse, und das System wird möglicherweise instabil, wenn Ausnahmen fehlen oder ausgelöst werden.

Tatsächlich verwendet v2012 einen anderen Mechanismus zum Registrieren von Add-Ins, aber einige Add-Ins installieren sich selbst auf allen Instanzen. Überprüfen Sie diesen Registrierungsschlüssel:

[HKEY_CURRENT_USER\Software\Microsoft\SQL Server Management Studio\11.0_Config\AutomationOptions\LookInFolder]

Dort finden Sie die Ordnerliste. Überprüfen Sie alle diese Ordner - sie müssen leer sein (dh Sie haben keine Add-Ins).

Andrei Rantsevich
quelle
4

Versuchen Sie, das Virenschutzprogramm zu deaktivieren, und überprüfen Sie dann die Leistung für SQL Server 2012 Management Studio.

imran
quelle
4
Was ist der Grund für diesen Vorschlag?
Martin Smith
3

Ich habe dieses Problem noch nicht persönlich erlebt, aber es gibt einen langen Thread ( hier ), in dem viele Leute sind. Der allgemeine Rat scheint zu sein, entweder mit Ihrem Grafiktreiber zu arbeiten

  1. Installieren eines aktualisierten Grafiktreibers -ODER-
  2. Reduzieren oder Deaktivieren von Hardwareexceleration -OR-
  3. Deaktivieren der DirectX-Unterstützung

Aus dem Thread gab es auch diese Antwort ... "Windows 7 Clean Boot-Prozedur ergab, dass der Dienst Biometric Authentication Service (DigitalPersona DPHostw.exe) das Problem war. Durch Deaktivieren des Dienstes wurde das Problem behoben."

Es würde mich interessieren, ob einer dieser Ansätze auch in Ihrem Fall funktioniert, da der Thread, den ich gefunden habe, ältere Versionen von SSMS betrifft, dh 2005, 2008 usw.

Lynn Langit
quelle
3

Ich denke, das Problem ist, dass das Öffnen einer neuen Verbindung zu Ihrem Server 5 Sekunden dauert. Warum genau dies der Fall ist, kann ich nicht sagen, und es würde eine Kabelverfolgung zum Analysieren und Diagnostizieren erfordern. Sie sollten untersuchen, welche Protokolle versucht werden und welches Protokoll letztendlich erfolgreich ist. Es kann sein, dass Ihr Client zuerst Named Pipes versucht (was von SMB abhängt) und dann auf TCP zurückgreift (obwohl die übliche Verzögerung in einem solchen Fall viel länger ist, etwa 20-30 Sekunden).

Ich würde empfehlen, die Reihenfolge der Client-Protokolle in der Client-Netzwerkkonfiguration zu überprüfen . Überprüfen Sie das vom Client verwendete Protokoll, indem Sie Ihren eigenen Eintrag in finden sys.dm_exec_connections.

Remus Rusanu
quelle
3

Ich habe das gleiche Problem und es stellt sich heraus, dass der Trend Micro Office-Scan das Problem verursacht.

Ich habe alles versucht, was in mehreren ähnlichen Threads zu diesem Problem beschrieben wurde, ohne Erfolg. Ich dachte, ich werde versuchen, die AV-Software zu deaktivieren. Sobald der Trend Micro Office-Scan deaktiviert ist, blinkt SSMS schnell.

Dies ist unter Windows 7 nicht geschehen.

user1905428
quelle
3

Auch ich hatte eine Verzögerung von 5 bis 10 Sekunden, als ich mit der rechten Maustaste auf eine Tabelle klickte, um das Kontextmenü aufzurufen. Meine Situation könnte jedoch etwas anders sein, da ich nur lokale Datenbanken verwende. Meine Lösung:

Nachdem ich die Antwort von imran über das Deaktivieren von Antivirus gelesen hatte, ging ich noch einen Schritt weiter, da ich mein Antivirus NUR vollständig deaktivieren möchte, um dieses Problem zu beheben.

Ich habe die Verzögerung erheblich verringert (sie beträgt jetzt maximal 1 Sekunde), indem ich die Standarddatenbankspeicherorte geändert und dann dieses Verzeichnis vom Antivirus ausgeschlossen habe (in meinem Fall verwende ich Microsoft System Center Endpoint Protection 2015).

Ausführliche Informationen zum Ändern der Standarddatenbankpositionen finden Sie im folgenden Artikel. http://thomaslarock.com/2015/02/changing-default-database-file-locations-in-sql-server/

davrob01
quelle
3

Ich hatte das gleiche Problem mit SSMS 2016. Mit procmon habe ich festgestellt , dass das letzte, was vor einer Verzögerung von mehreren Sekunden erfolgte, eine Netzwerkverbindung zu einer Microsoft-IP-Adresse war. Ich habe dann versucht , indem Registrierungsschlüssel aus dem Programm zur Kundenzufriedenheit HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SQL Server\130Drehwert CustomerFeedbackvon 1 auf 0. Nach dem Neustart SSMS es schnell wieder zu arbeiten. Vermutlich führt das nicht immer zu langsamen neuen Abfragefenstern, aber für mich hat es funktioniert.

Ich weiß nicht, ob das mit Ihrem SSMS 2012 passiert ist, aber vielleicht einen Versuch wert. Registrierungsschlüssel wird wahrscheinlich 110statt 130.

Rory
quelle
2

In Bezug auf SSMS 2016 und die Registrierungsänderung. Mein Weg war

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\Tools\Setup\UserFeedbackOptIn  

Ich habe es von 1 auf 0 geändert und SSMS war wieder schnell.

JohnH
quelle
2

Manchmal kann dieses Problem gelöst werden, indem einfach eine große Anzahl von zwischengespeicherten Abfragefenstern geschlossen wird.

Meine Instanz von SSMS hatte ungefähr 15 Abfragen im gespeicherten Cache (der jedes Mal geöffnet wurde, wenn ich SSMS öffnete). Ich habe alle diese Fenster geschlossen, SSMS neu gestartet und das Problem war sofort verschwunden.

Coruscate5
quelle
2

Ich habe ssms v17.0, ich hatte auch das Problem mit langsamen Rechtsklick-Kontextmenüs.

Der Name des Computers hatte Striche, benannte den Computer in etwas Einfaches um und reparierte ihn.

Ich habe ssms deinstalliert, sql server deinstalliert und den Computer in "MyBox" umbenannt, anstatt in "xja-13-asdfa3". Dann habe ich den SQL-Server und dann ssms neu installiert und dadurch ALLE meine SLOW-Kontextmenü-Probleme beim Klicken mit der rechten Maustaste behoben. Ich stelle mir vor, dass irgendwo DNS-Probleme aufgetreten sind und die Wartezeiten mit dem Warten auf DNS-Zeitüberschreitungen zusammenhängen.

Ich hatte einen Laptop mit 16 GB RAM, SSD-Laufwerke, eine 3-GHz-CPU direkt ab Werk mit dem standardmäßigen zufälligen PC-Namen.

user124222
quelle
1

Es ist schnell auf meinem Computer.

SSMS in SQL Server 2012 verwendet jetzt die Visual Studio 2010-Shell, die ressourcenintensiver ist als die Shell, die von SSMS in SQL Server 2008 verwendet wird. Ich empfehle, Ihren Computer zu aktualisieren oder SSMS von SQL Server 2008 R2 zu verwenden. Sie sollten in der Lage sein, die meisten Aufgaben mit der alten Version auszuführen.

Sie können auch versuchen, das neueste kumulative Update zu installieren, da auch die Client-Tools aktualisiert werden. Die neueste Version für SQL Server 2012 ist derzeit CU1.

http://support.microsoft.com/kb/2679368/

Rob Boek
quelle
1

Das Ändern des Computernamens in "-" hat es für mich behoben.

John Campbell
quelle
0

Für mich war es die BitDefender-Firewall, die mein SSM extrem langsam machte. Anscheinend blockierte eine Art Firewall den Zugriff auf die Datenbankliste

eka808
quelle
-1

Man sollte den Status der Datenbankeigenschaft " Automatisch schließen " in der Gruppe " Automatisch " überprüfen .

Wenn true, wird die Verbindung nach jeder Abfrage geschlossen und bei jeder neuen Abfrage erneut geöffnet. Das verlangsamt sicherlich Ihre Arbeit in ssms. Standard ist false.

Loul G.
quelle
-2

Könnte es sein, dass Sie nicht genug RAM auf Ihrem Computer haben?

Der empfohlene RAM für SQL 2012 ist 4 go. Es war 2 für SQL 2008. http://msdn.microsoft.com/en-us/library/ms143506.aspx

Vielleicht benötigen Sie nach dem Upgrade von SQL 2008 auf 2012 mehr RAM?

Danielle Paquette-Harvey
quelle
-2

Wenn ich SSMS mit Administratorrechten starte (Rechtsklick und als Administrator ausführen), funktioniert es einwandfrei, andernfalls dauert das neue Abfragefenster länger

Waqas Zubairy
quelle
-3

Die Ursache hierfür ist fast immer ein fehlendes Netzlaufwerk - z. B. wenn Sie eine Laufwerkszuordnung zu Ihrem Laptop haben, Ihr Laptop jedoch ausgeschaltet ist.

Die Lösung ist leider, Ihren Laptop einzuschalten (damit die Laufwerke wieder verbunden werden) oder Ihre Laufwerke im Windows Explorer zu trennen (aber Sie müssen sie später wieder verbinden).

Weitere Informationen finden Sie hier: http://social.msdn.microsoft.com/Forums/en-US/sqltools/thread/64c13a84-3e62-4b0c-a1ce-65fcc78d6787

Faulenzer
quelle
1
Dieses Problem ist spezifisch für SSMS 2012 - Ich bezweifle, dass ein MSDN-Thread vom Februar 2010 relevant sein wird.
JNK