it-swarm.com.de

SQL Server Management Studio 2012 hängt

Wenn ich im "Objekt-Explorer" auf den Knoten "Datenbanken" klicke, wird nur "Artikel laden" angezeigt, bis er irgendwann hängt.

Dies geschieht nur, wenn Sie eine Verbindung zu einem Remote-Server herstellen, nicht jedoch beim Zugriff auf eine Datenbank auf meinem PC.

Das passiert auch bei keinem anderen Knoten.

Die Jungs der Webhosting-Firma hatten keine Probleme damit. (Aber sie laufen 2008 und der SQL-Server ist auch dort)

Ich habe den gesamten SQL-Server usw. neu installiert, aber ohne Erfolg.

Was könnte das Problem sein?

26
ispiro

Das gleiche Problem trat bei mir auf: Beim Zugriff auf einen Remote-Server mit dem Objekt-Explorer würde SSMS unbegrenzt hängen bleiben. Das Windows-Systemereignisprotokoll würde den DCOM-Fehler 10009 anzeigen ("DCOM konnte mit dem Computer MACHINE_NAME nicht mit einem der konfigurierten Protokolle kommunizieren.").

Die Lösung bestand darin, die MRU-Historie und andere Einstellungen aus meinem Profil zu löschen. Das zu tun:

  1. Schließen Sie alle offenen Instanzen von SSMS 2012
  2. Öffnen Sie im Explorer "% AppData%\Microsoft\SQL Server Management Studio".
  3. Benennen Sie den Ordner "11.0" in etwas anderes um, beispielsweise "11.0.old".
  4. Öffnen Sie SSMS 2012

Sie sehen, dass Ihre MRU-Liste gelöscht wurde. Sie sollten dann in der Lage sein, Ihre Anmeldeinformationen erneut einzugeben und SSMS wie gewohnt zu verwenden.

Wenn alles funktioniert, können Sie den umbenannten Ordner löschen. Löschen Sie andernfalls den neuen Ordner "11.0", den Sie erstellt haben, und benennen Sie den ursprünglichen Ordner wieder in "11.0" um.

Ich habe keine Ahnung, ob tatsächlich die MRU-Liste dieses Problem verursacht oder ob es andere Profildaten gibt. 

Wir konnten feststellen, dass SSMS versucht, über Port 135 eine DCOM-Verbindung zum SQL Server herzustellen (möglicherweise für SSIS, T-SQL-Debugging oder etwas anderes). Unsere Firewall wurde so konfiguriert, dass Port 135 blockiert wird. Durch das Öffnen des Ports in der Firewall konnten wir SSMS verwenden (aus diesem Grund funktionierte es mit lokalen Datenbanken, nicht jedoch mit Remote-Datenbanken). Leider ist ein offener Port 135 eine Einladung zu vielen Angriffen, daher war dies keine praktische Lösung für uns.

45
Jaecen

Deaktivieren Sie das automatische Schließen für alle Datenbanken. Arbeitete wie ein Zauber für mich! Jedes Mal, wenn Sie die Datenbankliste erweitern oder aktualisieren, muss der Server die Datenbanken aktivieren, die den Hang verursachen.

Führen Sie einfach das aus, um alle Datenbanken zu finden, für die automatisch geschlossen wird

SELECT name, is_auto_close_on
FROM master.sys.databases AS dtb 
WHERE is_auto_close_on = 1 
ORDER BY name

Kredite an http://social.msdn.Microsoft.com/Forums/sqlserver/en-US/99bbcb47-d4b5-4ec0-9e91-b1a23a655844/ssms-2012-extrem-slow-expanding-databases?forum=sqltools

So deaktivieren Sie diese Einstellung für eine Datenbank - Klicken Sie mit der rechten Maustaste auf die Datenbankinstanz im Objekt-Explorer -> Klicken Sie auf Eigenschaften -> Klicken Sie im linken Navigationsbereich des Datenbankeigenschaftenfensters auf "Optionen" -> Ändern Sie den Wert der Eigenschaft Auto Close in "False" in rechter Bereich wie im Schnappschuss unten gezeigt:

 Auto close option in database properties window in SQL Server 2008 R2

6
Nuno Agapito

Vorausgesetzt, Sie haben nur Zugriff auf eine einzige Datenbank beim Hosting-Unternehmen (was fast immer der Fall ist, zumindest bei einem bestimmten Benutzernamen/Passwort), können Sie die Verwendung des Dropdown-Menüs überhaupt vermeiden, indem Sie Ihren registrierten Server auf den Standard festlegen Datenbank, auf die Sie zugreifen sollen:

enter image description here

(Auch hier kann es länger dauern, dies wird jedoch einmalig sein. Sie können es auch eingeben, anstatt zu warten, bis die Liste gefüllt wird.)

Selbst wenn das Login, das der Host für Sie erstellt hat, Sie standardmäßig an Tempdb oder etwas anderes weiterleitet, wird Sie von Management Studio trotzdem in den Kontext Ihrer Datenbank gestellt.

Ich sehe jetzt, dass Sie über den Object Explorer-Knoten sprechen, nicht über die Dropdown-Liste "Datenbank verwenden", die ich falsch interpretiert habe. Eine Übung, die Sie ausprobieren können, besteht darin, den Datenbankknoten hervorzuheben (nicht zu erweitern) und auf F7 (Object Explorer Details) zu klicken. Wenn dies für Sie wichtig ist, kann es eine Alternative sein, durch die Hierarchie zu navigieren. Als Bonus können Sie hier eine Vielzahl von Entitätsattributen anzeigen und außerdem mehrere Elemente auswählen, über die Sie im Objekt-Explorer keine Kontrolle haben.

Wenn das nicht hilft, sollte Ihr Gastgeber Ihnen besser helfen, als es den Anschein hat. Wenn SSMS 2012 unterstützt wird, sollten sie dies in SSMS 2012 testen und bestätigen oder ablehnen können, dass sie es reproduzieren können. Wenn dies nicht unterstützt wird, sollten Sie SSMS 2008 auch installieren (sie können nebeneinander vorhanden sein), um diesen Server zu verwalten. 

Natürlich können Sie fast alles, was Sie im Object Explorer tun können (und viele andere Dinge, die Sie nicht tun können), indem Sie die catalog-Ansichten und/oder DMVs verwenden. Bevor Sie also entscheiden, was zu tun ist, möchten Sie vielleicht genau prüfen, für wen Sie den Objekt-Explorer verwenden. Wenn Sie dies ohne den Objekt-Explorer tun können, möchten Sie die Problemumgehung besser als zwei Versionen des Tools (seit den Verbesserungen in 2012 hat SSMS absolut nichts mit dem Object Explorer zu tun).

5
Aaron Bertrand

Ich habe über einen Monat mit dem Microsoft SQL Support gearbeitet, um dieses Problem zu beheben. Es wurde als Fehler übermittelt. 

Ich habe sowohl SQL 2012 SSMS als auch VS 2012 unter Windows 7 (64) installiert.

Das Löschen des Profilordners hat nie für einen angemessenen Zeitraum funktioniert.

Die Problemumgehung bestand darin, sicherzustellen, dass mein SSMS-Profil beim Herstellen der Verbindung die Master-Datenbank verwendet. Es schien etwas damit zu tun zu haben, dass ich mich mit der Windows-Authentifizierung verbinde und mehr als einer AD-Gruppe angehöre, für die SQL-Berechtigungen zugewiesen sind, und für mein AD-Konto sind keine SQL-spezifischen Berechtigungen eingerichtet.

3
PTansey

Ich verbinde mich mit mehreren Remote-Servern, die von 2000 bis 2012 erreichbar sind SMSS auf dem lokalen PC ist SQL Server 2012, SMSS ist 11.0.2100.60

SSMS friert mehrmals am Tag ein. Wenn dies der Fall ist, gehe ich über RDP zum lokalen Server/SMSS/Aktivitätsmonitor und bringe die Prozesse von meinem PC mit Datenbankname = master jeweils einzeln bis zum SMSS auf meinem PC ab entfriert nicht.

Dies funktioniert immer, jedoch ist ein Heilmittel für die Krankheit raher als die Symptome höchst willkommen.

2
Herbert Tobisch

In meinem Fall hat das Löschen des Profilordners genau einmal funktioniert. Wenn ich SSMS 2012 das nächste Mal öffne, friert es beim Herstellen einer Verbindung zu einem Server erneut ein. SP1 hat dies ebenfalls nicht behoben.

Das war, bis ich die folgende einfache Problemumgehung fand, die auf einem - Ticket von Ben Amada unter connect.Microsoft.com beschrieben wurde: Schließen Sie immer das Details zum Objekt-Explorer vor dem Schließen von SSMS 2012

Die vollständige Problemumgehung für mich lautet also:

  1. Folgen Sie Jaecens Antwort, schließen Sie jedoch SSMS 2012 erneut, nachdem ein sauberer Profilordner erstellt wurde
  2. Übernehmen Sie Hoodlums Empfehlung und kopieren Sie SqlStudio.bin aus dem alten Profilordner in den neuen (der alte Profilordner kann anschließend gelöscht werden)
  3. Stellen Sie vor jedem Schließen von SSMS 2012 sicher, dass das Fenster Details zum Objekt-Explorer geschlossen ist

Die ersten beiden Schritte sind nur einmal erforderlich, oder wenn das Fenster Objekt-Explorer-Details versehentlich geöffnet wurde.

Bearbeiten

Mir ist gerade aufgefallen, dass das Schließen des Details-Fensters des Objekt-Explorers auch erforderlich ist, wenn in derselben SSMS-Sitzung eine (erneute) Verbindung zu einem SQL-Server hergestellt wird. Wenn Sie eine Verbindung zu einem Server herstellen, müssen Sie das Fenster Details zum Objekt-Explorer schließen.

2
ecdsa

Habe einige SQL Server von 2000 bis 2012, Zugriff über SMSS von meinem Desktop aus . Das Problem tritt mit unterschiedlicher Häufigkeit auf und sieht folgendermaßen aus: Wenn ich einen Server im Objekt-Explorer zusammenbringe, friert SMSS ein.

ich schaue im Aktivitätsmonitor auf dem fraglichen Server und finde einen Prozess in der Master-Datenbank mit Host = Mein Desktop, der die folgende Abfrage ausführt

SELECT dtb.name AS [Name] FROM master.dbo.sysdatabases AS dtb ORDER BY [Name] ASC SMSS

den Prozess zu beenden, macht SMSS frei.

2
Herbert Tobisch

Ich habe ungefähr alle obigen Antworten getestet, aber mein SSMS blieb beim Erweitern der Datenbankliste hängen. Ich habe das Problem endlich gefunden. Das Problem war auf eine Datenbank zurückzuführen, die ich wiederhergestellt habe, die jedoch am Ende korrekt wiederhergestellt wurde. Als ich dann die Datenbankliste erweiterte, blieb sie hängen.

Ich führe die Abfrage aus 

SELECT 
dtb.name AS [Name]
,dtb.database_id AS [ID] 
,CAST(has_dbaccess(dtb.name) AS bit) AS [IsAccessible] FROM master.sys.databases AS dtb 

Dann hat das Ergebnis zu lange gedauert und am Ende war das Zeitlimit überschritten, aber wenn ich die festgefahrene Datenbank filtern würde, habe ich das Ergebnis erhalten.

SELECT 
dtb.name AS [Name]
,dtb.database_id AS [ID] 
,CAST(has_dbaccess(dtb.name) AS bit) AS [IsAccessible] FROM 
master.sys.databases AS dtb 
Where name <> 'StuckDB' ORDER BY [Name] ASC 

Am Ende entschied ich mich, StuckDB zu lösen, um mein Problem zu lösen.

1
Alex

Folgendes funktionierte für mich SSMS öffnen Klicken Sie auf die Schaltfläche zum Verbinden mit dem Objekt-ExplorerIm Dialogfeld "Verbindung zum Server" aufklappen Sie die Optionen auf.

1
Koko

Ich habe jetzt SQL 2012 Service Pack 1 (über Windows Update) angewendet und scheint jetzt gut zu funktionieren, obwohl das Laden sehr lange dauert.

0
ispiro

Gehen Sie zu den Datenbankeigenschaften von SSMS und ändern Sie die Kompatibilität in 2012. Überprüfen Sie dann.

 enter image description here

0
Kavi

Ich habe dieses Problem gelöst, indem ich meine Standarddatenbank wieder in master geändert habe.

0
Tuan

"Öffnen Sie SSMS. Klicken Sie im Dialogfeld" Verbindung mit Server herstellen "auf die Schaltfläche zum Verbinden mit dem Objekt-Explorer

0
user3331508