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 ?
;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;
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. –