データベース スナップショットのスパース ファイルのサイズを表示する方法 (Transact-SQL)View the Size of the Sparse File of a Database Snapshot (Transact-SQL)

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

このトピックでは、Transact-SQLTransact-SQL を使用して、SQL ServerSQL Server データベース ファイルがスパース ファイルであることを確認する方法と、その実サイズおよび最大サイズを調べる方法について説明します。This topic describes how to use Transact-SQLTransact-SQL to verify that a SQL ServerSQL Server database file is a sparse file and to find out its actual and maximum sizes. NTFS ファイル システムの機能であるスパース ファイルは、 SQL ServerSQL Server データベース スナップショットによって使用されます。Sparse files, which are a feature of the NTFS file system, are used by SQL ServerSQL Server database snapshots.

注意

スパース ファイルは、データベース スナップショットの作成時に CREATE DATABASE ステートメント内のファイル名を使用して作成されます。During database snapshot creation, sparse files are created by using the file names in the CREATE DATABASE statement. これらのファイル名は、 sys.master_filesphysical_name 列に格納されます。These file names are stored in sys.master_files in the physical_name column. ソース データベース内とスナップショット内のいずれであっても、 sys.database_filesphysical_name 列には、ソース データベース ファイルの名前が必ず格納されます。In sys.database_files (whether in the source database or in a snapshot), the physical_name column always contains the names of the source database files.

データベース ファイルがスパース ファイルであることを確認するVerify that a Database File is a Sparse File

  1. SQL ServerSQL Serverのインスタンスで次の操作を実行する:On the instance of SQL ServerSQL Server:

    データベース スナップショットの sys.database_files または sys.master_files から is_sparse列を選択します。Select the is_sparse column from either sys.database_files in the database snapshot or from sys.master_files. 次に示すように、この値からファイルがスパース ファイルであるかどうかがわかります。The value indicates whether the file is a sparse file, as follows:

    1 = ファイルはスパース ファイルです。1 = File is a sparse file.

    0 = ファイルはスパース ファイルではありません。0 = File is not a sparse file.

スパース ファイルの実際のサイズを調べるFind Out the Actual Size of a Sparse File

注意

スパース ファイルは 64 KB 単位で大きくなるので、ディスク上のスパース ファイルのサイズは常に 64 KB の倍数になります。Sparse files grow in 64-kilobyte (KB) increments; thus, the size of a sparse file on disk is always a multiple of 64 KB.

スナップショットの各スパース ファイルが現在ディスク上で使用しているバイト数を表示するには、SQL ServerSQL Server sys.dm_io_virtual_file_stats 動的管理ビューの size_on_disk_bytes 列に対してクエリを実行します。To view the number of bytes that each sparse file of a snapshot is currently using on disk, query the size_on_disk_bytes column of the SQL ServerSQL Server sys.dm_io_virtual_file_stats dynamic management view.

スパース ファイルが使用するディスク領域を表示するには、Microsoft Windows でファイルを右クリックして [プロパティ] をクリックし、 [ディスク上のサイズ] の値を確認します。To view the disk space used by a sparse file, right-click the file in Microsoft Windows, click Properties, and look at the Size on disk value.

スパース ファイルの最大サイズを調べるFind Out the Maximum Size of a Sparse File

スパース ファイルの最大サイズは、スナップショット作成時点での対応するソース データベース ファイルのサイズです。The maximum size to which a sparse can grow is the size of the corresponding source database file at the time of the snapshot creation. このサイズを調べるには、次のいずれかを実行します。To learn this size, you can use one of the following alternatives:

  • Windows コマンド プロンプトを使用する:Using Windows Command Prompt:

    1. Windows の dir コマンドを使用します。Use Windows dir commands.

    2. スパース ファイルを選択し、ファイルの [プロパティ] ダイアログ ボックスを開き、 [サイズ] の値を確認します。Select the sparse file, open the file Properties dialog box in Windows, and look at the Size value.

  • SQL ServerSQL Serverのインスタンスで次の操作を実行する:On the instance of SQL ServerSQL Server:

    データベース スナップショットの sys.database_files または sys.master_files から size列を選択します。Select the size column from either sys.database_files in the database snapshot or from sys.master_files. size 列の値には、スナップショットが使用できる最大領域 (SQL ページ数) が反映されます。この値は、Windows の [サイズ] フィールドに相当しますが、ファイル内の SQL ページ数で表されている点が異なります。バイト単位のサイズは次のように表されます。The value of size column reflects the maximum space, in SQL pages, that the snapshot can ever use; this value is equivalent to the Windows Size field, except that it is represented in terms of the number of SQL pages in the file; the size in bytes is:

    ( number_of_pages * 8192)( number_of_pages * 8192)

Example

次のスクリプトは、各スパース ファイルのディスク上のサイズを KB 単位で表示します。The following script will show the size on disk in kilobytes for each sparse file. また、スパース ファイルが増えた場合の最大サイズも MB 単位で表示します。The script will also show the maximum size in megabytes to which a sparse file can grow. SQL Server Management StudioSQL Server Management Studioで Transact-SQL スクリプトを実行します。Execute the Transact-SQL script in SQL Server Management StudioSQL Server Management Studio.

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;

参照See Also

Database Snapshots (SQL Server) Database Snapshots (SQL Server)
sys.fn_virtualfilestats (Transact-SQL) sys.fn_virtualfilestats (Transact-SQL)
sys.database_files (Transact-SQL) sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL)sys.master_files (Transact-SQL)