本主题介绍如何使用 Transact-SQL 来验证 SQL Server 数据库文件是否为稀疏文件,并找出其实际大小和最大大小。 稀疏文件是 NTFS 文件系统的一项功能,由 SQL Server 数据库快照使用。
注释
在创建数据库快照期间,使用 CREATE DATABASE 语句中的文件名创建稀疏文件。 这些文件名存储在sys.master_files的physical_name列中。 在 sys.database_files (无论是源数据库中还是快照中), physical_name 列始终包含源数据库文件的名称。
验证数据库文件是否为稀疏文件
在 SQL Server 实例上:
从sys.database_files中的数据库快照或sys.master_files中选择is_sparse列。 该值指示文件是否为稀疏文件,如下所示:
1 = 文件是稀疏文件。
0 = 文件不是稀疏文件。
了解稀疏文件的实际大小
注释
稀疏文件以 64 KB 为增量增长:因此,磁盘上稀疏文件的大小始终为 64 KB 的倍数。
若要查看快照的每个稀疏文件当前在磁盘上使用的字节数,请查询 SQL Server sys.dm_io_virtual_file_stats动态管理视图的size_on_disk_bytes列。
若要查看稀疏文件使用的磁盘空间,请右键单击 Windows Microsoft 中的文件,单击“ 属性”,然后查看 磁盘值上的“大小 ”。
了解稀疏文件的最大大小
稀疏文件可增大的最大大小是创建快照时相应源数据库文件的大小。 若要了解此大小,可以使用以下替代方法之一:
使用 Windows 命令提示符:
使用 Windows dir 命令。
选择稀疏文件,在 Windows 中打开“文件 属性 ”对话框,并查看 “大小 ”值。
在 SQL Server 实例上:
从sys.master_files或数据库快照中的sys.database_files中选择size列。 大小列的值反映了快照可以使用的最大空间(在 SQL 页中);此值等效于 Windows 大小字段,只不过它以文件中的 SQL 页数表示;大小(以字节为单位):
( number_of_pages * 8192)
另请参阅
数据库快照 (SQL Server)
sys.fn_virtualfilestats(Transact-SQL)
sys.database_files(Transact-SQL)
sys.master_files(Transact-SQL)