2016-04-28 14 views
1

Ich möchte überprüfen, wie SQL Server Speicherplatz belegen, um Daten zu speichern. Ich habe vor kurzem nur eine Tabelle fallen lassen, die etwa 100 GB, und die Festplatte immer noch die gleiche (vor dem Ablegen der Größe ist 30 GB, nach dem Drop-Betrieb, sollte die Größe 130 GB gehen). Nach Überprüfung aus dem Web, bemerkte, dass SQL Server dies nicht automatisch behandelt, um SQL Server Release-Festplattenblock zu erhalten, ist eine Schrumpfungsoperation erforderlich. Korrigiere mich, wenn ich falsch liege.Wie SQL Server 2014 Speicherplatz zum Speichern von Daten verbrauchen

Jetzt ist meine Frage, nachdem ich 30GB Daten gelöscht habe, SQL Server wird es für die zukünftige Verwendung umgekehrt, was bedeutet, dass SQL Server diese reservierten Blöcke für alle neuen Daten anstelle von Anforderungsblöcken von OS verwenden wird. Korrigiere mich, wenn ich falsch liege.

Hier die Informationen, die ich von der Datenbank bekomme, Wenn ich richtig verstanden werde, ist SQL Server für diese Datendatei über 308GB reserviert, und wir haben bereits etwa 196GB verwendet. So kommen alle neuen Daten zu dieser Datendatei, SQL Server wird den reservierten Block verwenden, bis es Größe 308 GB erreicht, dann fordert es zusätzliche Blöcke von OS an. Habe ich recht ?

enter image description here

;with db_file_cte as 
(
select 
    name, 
    type_desc, 
    physical_name, 
    size_mb = 
     convert(decimal(11, 2), size * 8.0/1024), 
    space_used_mb = 
     convert(decimal(11, 2), fileproperty(name, 'spaceused') * 8.0/1024) 
from sys.database_files 
) select 
name, 
type_desc, 
physical_name, 
size_mb, 
space_used_mb, 
space_used_percent = 
    case size_mb 
     when 0 then 0 
     else convert(decimal(5, 2), space_used_mb/size_mb * 100) 
    end 
from db_file_cte; 
+0

Das hat wirklich nichts mit ** Programmierung ** zu tun (auf der * diese Seite steht nur *), aber mit DB-Administration - also ist es Off-Topic hier und gehört auf [dba.stackexchange.com] (http://dba.stackexchange.com) - Wählen um zu bewegen. –

Antwort

1

Wenn ich es richtig verstanden habe, ist SQL Server über 308GB reserviert für diese Daten-Datei, und wir bereits über 196GB verwendet. Also alle neuen Daten kommen zu dieser Datei, SQL Server wird den reservierten Block verwenden, bis es Größe 308GB trifft, dann fordert es zusätzliche Blöcke von OS. Habe ich recht ?

Ja, Sie haben Recht. SQL Server-Datenbanken bestehen aus Dateien auf der Festplatte. Standardmäßig wird durch das Freigeben von Speicherplatz in der Datenbank die Größe der Dateien nicht geändert.

Sie können jedoch die automatische Wachstumseinstellung Ihrer einzelnen Dateien überprüfen. Führen Sie "sp_helpfile" aus und überprüfen Sie die Spalten maxsize und growth in der Ergebnismenge.

Sie können die Datenbank (oder bestimmte Dateien) verkleinern, um bei Bedarf nicht benötigten Speicherplatz freizugeben. (Sie können auch festlegen, dass die Datenbank automatisch verkleinert wird, dies wird jedoch NICHT empfohlen.) Aus Gründen der Leistung wird jedoch empfohlen, in der Datenbank ausreichend freien Speicherplatz zu lassen. Je volatiler die Daten sind, desto mehr ist der freie Speicherplatz hilfreich.

Verwandte Themen