Ich bin ziemlich neu in SQL Server 2012, ich wäre dankbar, wenn jemand helfen kann. Ich habe eine Kopie einer riesigen Datenbank in SQL Server 2012 wiederhergestellt und versucht, einige einfache Abfragen auszuführen.
Ich versuche, eine SELECT-Abfrage für eine Datenbanktabelle von 136898115
Zeilen auszuführen . Diese SELECT
Abfrage enthält nur eine einfache WHERE
Klausel. Jedes Mal, wenn ich diese Abfrage ausführe, schlägt dies fehl, weil auf der Systemfestplatte (der Partition, auf der Windows installiert ist - C:\
) nicht genügend Speicherplatz vorhanden ist (diese Partition verfügt nur über 6 GB freien Speicherplatz), und ich verstehe nicht, warum. Ich habe mein tempdb so definiert, dass es sich auf einem anderen Laufwerk befindet, das mehr als 14 Terabyte freien Speicherplatz hat. Natürlich befindet sich meine Datenbank auch auf einem anderen Laufwerk.
Wodurch geht meiner Systempartition der Speicherplatz aus? Ist es die Auslagerungsdatei?
quelle
Antworten:
SSMS-Abfrageergebnisse werden standardmäßig auf Laufwerk C: zwischengespeichert. Gehen Sie zu Tool \ Options. Siehe Anhang. Ändern Sie dies auf ein anderes Volume mit mehr Speicherplatz und Sie sollten in Ordnung sein.
quelle
Okay, ich habe es herausgefunden: Eric und ich hatten beide recht!
C:\Users\<UserName>\AppData\Local\Temp
in meinem Fall hier). Ich habe nachgesehen, und es scheint keinen offensichtlichen Weg zu geben, um dieses Caching auszuschalten.Die Imbissbuden sind also:
SELECT *
Verwenden Sie keine große Tabelle in SSMS, es sei denn, die Ergebnismenge passt in den Profilordnerquelle
Ich habe gerade das gleiche Problem gelitten. Nachdem ich die Antworten oben gelesen hatte, fand ich Folgendes.
Werkzeuge | Optionen ist nicht die Antwort. Meins war auf Y: Laufwerk eingestellt, aber ich habe beobachtet, wie meine Abfrage ausgeführt wurde und der Speicherplatz auf dem Laufwerk C: von 2,9 GB auf 5,04 MB gesunken ist (bevor ich die Abfrage beendet habe).
Also dachte ich, es sind wahrscheinlich Caching-Ergebnisse (da sie sehr groß sind und jede Zeile einen großen Teil von XML enthält) im Temp-Verzeichnis, was Jon gesagt hat, aber er war sich nicht sicher, wie Sie das ändern würden.
Was ich getan habe, um zu ändern, wo temporäre Dateien geschrieben werden, war, meine Umgebungsvariablen zu öffnen und die Benutzervariablen TEMP und TMP (die beide auf C: \ Temp gesetzt waren) zu bearbeiten, um in Z: \ Temp zu schreiben.
Ich kann bestätigen, dass nach dieser Änderung die Abfrage eine sehr große Datei in meinem Verzeichnis Z: \ Temp erstellt hat.
quelle