专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 SQL数据库文件详解

SQL数据库文件详解

更新时间:2021-08-16 11:05:02 来源:赢咖4 浏览1333次

适用于:

SQL Server(所有支持的版本)

每个 SQL Server 数据库至少有两个操作系统文件:一个数据文件和一个日志文件。数据文件包含数据和对象,例如表、索引、存储过程和视图。日志文件包含恢复数据库中所有事务所需的信息。数据文件可以组合在文件组中以用于分配和管理目的。

数据库文件

SQL Server 数据库具有三种类型的文件,如下表所示。

文件 描述
基本的 包含数据库的启动信息并指向数据库中的其他文件。每个数据库都有一个主数据文件。主数据文件的推荐文件扩展名是 .mdf。
中学 可选的用户定义数据文件。通过将每个文件放在不同的磁盘驱动器上,数据可以分布在多个磁盘上。辅助数据文件的推荐文件扩展名是 .ndf。
事务日志 日志保存用于恢复数据库的信息。每个数据库必须至少有一个日志文件。事务日志的推荐文件扩展名是 .ldf。

例如,名为Sales的简单数据库有一个包含所有数据和对象的主文件和一个包含事务日志信息的日志文件。可以创建一个名为Orders 的更复杂的数据库,其中包括一个主文件和五个辅助文件。数据库中的数据和对象分布在所有六个文件中,四个日志文件包含事务日志信息。

默认情况下,数据和事务日志放在相同的驱动器和路径上以处理单磁盘系统。对于生产环境,此选择可能不是最佳选择。我们建议您将数据和日志文件放在不同的磁盘上。

逻辑和物理文件名

SQL Server 文件有两种文件名类型:

logical_file_name: logical_file_name 是用于在所有 Transact-SQL 语句中引用物理文件的名称。逻辑文件名必须符合 SQL Server 标识符的规则,并且在数据库中的逻辑文件名中必须是唯一的。

os_file_name: os_file_name 是物理文件的名称,包括目录路径。它必须遵循操作系统文件名的规则。

当 SQL Server 的多个实例在一台计算机上运行时,每个实例都会收到一个不同的默认目录来保存在该实例中创建的数据库的文件。

数据文件页

SQL Server 数据文件中的页面按顺序编号,文件中的第一页从零 (0) 开始。数据库中的每个文件都有一个唯一的文件 ID 号。要唯一标识数据库中的页面,需要文件 ID 和页码。以下示例显示了具有 4 MB 主数据文件和 1 MB 辅助数据文件的数据库中的页码。

文件头页是包含文件属性信息的第一页。文件开头的其他几个页面也包含系统信息,例如分配映射。存储在主数据文件和第一个日志文件中的系统页面之一是数据库引导页面,其中包含有关数据库属性的信息。

文件大小

SQL Server 文件可以从它们最初指定的大小自动增长。定义文件时,可以指定特定的增长增量。每次文件被填满时,它的大小都会增加增长增量。如果文件组中有多个文件,则在所有文件都已满之前它们不会自动增长。

每个文件还可以指定最大大小。如果未指定最大大小,则文件可以继续增长,直到用完磁盘上的所有可用空间。当 SQL Server 用作嵌入在用户无法方便地访问系统管理员的应用程序中的数据库时,此功能特别有用。用户可以让文件根据需要自动增长,以减少监控数据库中的可用空间和手动分配额外空间的管理负担。

数据库快照文件

数据库快照用于存储其写时复制数据的文件形式取决于快照是由用户创建还是内部使用:

用户创建的数据库快照将其数据存储在一个或多个稀疏文件中。稀疏文件技术是 NTFS 文件系统的一个特性。起初,一个稀疏文件不包含用户数据,用户数据的磁盘空间还没有分配给稀疏文件。

某些 DBCC 命令在内部使用数据库快照。这些命令包括 DBCC CHECKDB、DBCC CHECKTABLE、DBCC CHECKALLOC 和 DBCC CHECKFILEGROUP。内部数据库快照使用原始数据库文件的稀疏备用数据流。与稀疏文件一样,备用数据流是 NTFS 文件系统的一项功能。稀疏交替数据流的使用允许将多个数据分配与单个文件或文件夹相关联,而不会影响文件大小或卷统计数据。

以上就是赢咖4小编介绍的"SQL数据库文件详解",希望对大家有帮助,想了解更多可查看数据库教程。赢咖4在线学习教程,针对没有任何Java基础的读者学习,让你从入门到精通,主要介绍了一些Java基础的核心知识,让同学们更好更方便的学习和了解Java编程,感兴趣的同学可以关注一下。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>