Anzeigen der Größe der Datei mit geringer Dichte einer Datenbank-Momentaufnahme (Transact-SQL)

 

In diesem Thema wird beschrieben, wie Sie mit Transact-SQL überprüfen, ob eine SQL Server -Datenbankdatei eine Datei mit geringer Dichte ist, und wie Sie die tatsächliche und maximale Größe ermitteln. Dateien mit geringer Dichte, die in Verbindung mit dem NTFS-Dateisystem vorkommen, werden von SQL Server -Datenbankmomentaufnahmen verwendet.

System_CAPS_ICON_note.jpg Hinweis


Beim Erstellen von Datenbankmomentaufnahmen werden Dateien mit geringer Dichte mithilfe der Dateinamen in der CREATE DATABASE-Anweisung erstellt. Diese Dateinamen werden in der Spalte physical_name in sys.master_files gespeichert. In sys.database_files (sowohl in der Quelldatenbank wie auch in einer Momentaufnahme) enthält die Spalte physical_name immer die Namen der Quelldatenbankdateien.

  1. Auf der Instanz von SQL Server:

    Wählen Sie entweder in der Datenbank-Momentaufnahme unter sys.database_files oder in sys.master_files die Spalte is_sparse aus. Der Wert gibt wie folgt an, ob die Datei eine Datei mit geringer Dichte ist:

    1 = Die Datei ist eine Datei mit geringer Dichte.

    0 = Die Datei ist keine Datei mit geringer Dichte.

System_CAPS_ICON_note.jpg Hinweis


Dateien mit geringer Dichte wachsen in 64-KB-Schritten, weshalb die Größe einer Datei mit geringer Dichte auf dem Datenträger immer einem Vielfachen von 64 KB entspricht.

Sie können die Spalte size_on_disk_bytes der dynamischen Verwaltungssicht sys.dm_io_virtual_file_stats von SQL Server verwenden, um den belegten Speicherplatz (in Bytes) der Dateien mit geringer Dichte einer Momentaufnahme anzuzeigen.

Zum Anzeigen des Speicherplatzes, der durch eine Datei mit geringer Dichte in Anspruch genommen wird, klicken Sie in Microsoft Windows mit der rechten Maustaste auf Eigenschaften, und lesen Sie den Wert unter Größe auf Datenträger ab.

Eine Datei mit geringer Dichte kann maximal die Größe der Quelldatenbankdatei erreichen, die zum Zeitpunkt der Momentaufnahmeerstellung festgelegt wurde. Zur Ermittlung dieser Größe stehen Ihnen die folgenden Alternativen zur Auswahl:

  • Verwenden der Windows-Eingabeaufforderung:

    1. Verwenden Sie die dir -Befehle an der Eingabeaufforderung von Windows.

    2. Wählen Sie die Datei mit geringer Größe aus, öffnen Sie in Windows das Dialogfeld Eigenschaften der Datei, und lesen Sie den Wert für die Größe ab.

  • Auf der Instanz von SQL Server:

    Wählen Sie entweder in sys.database_files in der Datenbank-Momentaufnahme oder in sys.master_files die size-Spalte aus. Der Wert in der size -Spalte gibt den maximal durch eine Momentaufnahme verwendbaren Speicherplatz in SQL-Seiten an. Dieser Wert entspricht dem Feld Größe in Windows. Der einzige Unterschied besteht darin, dass hierbei die Anzahl der SQL-Seiten in der Datei angegeben wird. Die Größe in Bytes kann daraus wie folgt errechnet werden:

    ( Seitenanzahl * 8192)

Das folgende Skript zeigt für jede Datei mit geringer Dichte die Größe auf dem Datenträger in KB an. Das Skript zeigt außerdem die maximale Größe in MB an, auf die eine Datei mit geringer Dichte anwachsen kann. Führen Sie das Transact-SQL-Skript in SQL Server Management Studio aus.

SELECT  DB_NAME(sd.source_database_id) AS [SourceDatabase], 
        sd.name AS [Snapshot],
        mf.name AS [Filename], 
        size_on_disk_bytes/1024 AS [size_on_disk (KB)],
        mf2.size/128 AS [MaximumSize (MB)]
FROM sys.master_files mf
JOIN sys.databases sd
    ON mf.database_id = sd.database_id
JOIN sys.master_files mf2
    ON sd.source_database_id = mf2.database_id
    AND mf.file_id = mf2.file_id
CROSS APPLY sys.dm_io_virtual_file_stats(sd.database_id, mf.file_id)
WHERE mf.is_sparse = 1
AND mf2.is_sparse = 0
ORDER BY 1;

Datenbank-Momentaufnahmen (SQL Server)
sys.fn_virtualfilestats (Transact-SQL)
sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL)

Community-Beiträge

HINZUFÜGEN
Anzeigen: