SQL Server Management Studio (SSMS) 2012 zeigt nur langsam Ergebnisse in Grid

943
Nico M

Im Allgemeinen verwende ich Microsoft SQL Server Management Studio 2012 (11.0.3000.0), wobei Abfrageergebnisse in einem Raster angezeigt werden. Die Abfrageergebnisse waren vor 3 oder 4 Tagen relativ langsam, jedoch nur zeitweise. Als Beispiel eine einfache Abfrage wie

SELECT GETDATE() 

Es dauert 7 Sekunden (gemäß SSMS), um das aktuelle Datum und die aktuelle Uhrzeit anzuzeigen. Wenn ich die Abfrage mit aktiviertem Ablaufverfolgung / Profiler ausführen, kann ich feststellen, dass die Abfrage fast sofort ausgeführt wird, obwohl der SSMS-Timer weiterhin tickt und für einige Zeit keine Ergebnisse angezeigt werden. Der resultierende Datums- / Zeitwert ist derselbe, den der Trace / Profiler für die Spalte "StarTime" anzeigt. Normalerweise wird die Abfrage in 1 Sekunde oder weniger zurückgegeben. Wenn ich fünf oder sechs Mal ausgeführt habe, werde ich das Problem feststellen und es dauert eine Weile, bis der Vorgang abgeschlossen ist.

In diesem Fall erreicht mein Quad-Core-Laptop eine CPU-Auslastung von 25% (der gesamte Kern wird für die gesamte Zeitspanne verwendet), bis das Raster erstellt ist.

Ich verbinde mich mit einem lokalen Server (in meinem LAN), der sehr wenig ausgelastet ist, und niemand in meinem Unternehmen scheint ähnliche Probleme zu haben. Ich habe SSMS 2014 installiert, um zu sehen, ob das geholfen hat. Da ich dachte, dies sei ein Problem beim Erstellen des DataGrid selbst, installierte ich .NET 4.6, was auch nicht half.

Wenn ich die Ergebnisse zu Text starte, werden sie jedes Mal in weniger als einer Sekunde angezeigt.

Es scheint kein Netzwerkproblem zu sein:

Reply from 192.168.10.47: bytes=32 time<1ms TTL=128  Ping statistics for 192.168.10.47: Packets: Sent = 24, Received = 24, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms 

Hat jemand Vorschläge, was ich versuchen sollte?

Ich bin unter Windows 7 (x64).

0

1 Antwort auf die Frage

0
Nico M

Ich konnte das Problem finden, indem ich die Abfrage ausführte, während ich den Prozess mit Process Monitor von der SysInternalSuite aus beobachtete . Beim Anzeigen von Abfrageergebnissen in einem Raster erstellt SQL Server Management Studio eine .tmp-Datei in C: \ Users \ Benutzername \ AppData \ Local \ Temp \ named tmp ####. Tmp (wobei # die zufällig generierten Zeichen sind). .

Aus irgendeinem Grund war mein temporäres Verzeichnis mit mehr als 40.000 dieser Dateien gefüllt (alle leer), und Process Monitor zeigte an, dass, wenn meine Abfrage keine Ergebnisse anzeigt, Tausende von "NAME COLLISION" -Fehlern ausgelöst wurden, die versuchten, ein Neuer Name für die temporäre Datei, die erstellt werden soll.

Durch das Anzeigen von Abfrageergebnissen in Text wird keine temporäre Datei erstellt, die erklärt, warum kein Problem aufgetreten ist.

Durch das Löschen aller TMP-Dateien aus diesem temporären Verzeichnis wurde mein Problem sofort behoben.

Hoffe das hilft jemand anderem.

Ich fand heraus, warum die temporären Dateien erstellt / zurückgelassen wurden. Es lag an einem Problem in der neuesten Version (5.1.14) von dbForge SQLComplete. Bei jedem Autocomplete-Dropdown-Menü wurden zwei tmp-Dateien zurückgelassen. Zurück auf 5.0.28 heruntergestuft, was dieses Problem offenbar nicht zu melden scheint und den Anbieter darüber informiert. Nico M vor 8 Jahren 0