
Ich führe eine SQL-Abfrage für meine Datenbank aus. Auf meiner Festplatte D ist SQL Server 2008 installiert, auf der 55 GB freier Speicherplatz vorhanden sind.
Ich habe auch ein Laufwerk C, auf dem (im Moment) etwa 150 MB frei sind.
Beim Ausführen dieser Abfrage auf einer ziemlich großen Tabelle (16 GB) tritt ein Fehler auf:
Beim Ausführen des Batches ist ein Fehler aufgetreten. Fehlermeldung: Nicht genügend Speicherplatz.
Ich würde gerne wissen, ob es eine Möglichkeit gibt, SQL Server dazu zu bringen, Laufwerk D statt C zu verwenden.
Oder liegt bei dem, was ich tue, vielleicht ein anderes Problem vor?
Danke für die Hilfe
Antwort1
Dies ist wahrscheinlich ein Protokollierungsproblem. Sie können die Protokolldatei auf ein anderes Laufwerk verschieben und eine Protokollierung auf niedrigerer Ebene verwenden.
Antwort2
Dies ist wahrscheinlich TEMPDB, eine der Systemdatenbanken von SQL Server. Sie wurde vom Installationsprogramm am Standardspeicherort der Datenbank erstellt.
Dieser Artikelspricht über das Verschieben der Tempdb.
Ebenso könnten Sie zusätzliche (erweiterbare) Dateien auf D: zur primären Dateigruppe der Tempdb-Datenbank hinzufügen, dann die Standarddateien auf eine feste Größe setzen (und sie schließlich leeren und dann entfernen).
Antwort3
Führen Sie die Abfrage mit einer Client-Anwendung auf dem SQL-Server aus, beispielsweise SSMS? Wenn ja, könnte es sein, dass das Laufwerk C verwendet wird, um die Ausgabe zur Anzeige zu speichern, insbesondere wenn Sie die Ausgabe in einem Raster ausführen. Versuchen Sie, die Abfrage mit der SQLCMD-Befehlszeile auszuführen.