主要数据文件 在SQL Server中 每个数据库都有一个主数据文件 它存储数据库中所有的数据和对象 例如 表 索引 存储 过程和视图等都放在主文件中 创建数据库时 新数据库 包含了从 Model数据库复制的系统对象 存储在主文件 中 这些系统对象包括数据库的启动信息 记载数据库对 象及其它文件位置信息的系统表 SQL Server中主要数据文件存储时默认扩展名为. mdf可省略 但使用扩展名有利于文件的识别 2 事务日志文件 一个单元的工作称为一个事务 该单元的工作要么全 部完成 要么全部不完成 为保证数据库操作的一致性和 完整性 SQL Server 2005通过事务日志文件来完成事务处 理功能 SQL Server遵守先写日志再执行数据库修改的数 据库系统 出于性能上的考虑 它将用户的改动存入缓存 中 这些改变会立即写入事务日志 但不会立即写入数据文 件 事务日志会通过一个标记点来确定某个事物是否已将 缓存中的数据写入数据文件 当SQL Server重启后 它会 查看日志中最新的标记点 并将这个标记点后面的事物记 录抹去 因为这些事物记录并没有真正地将缓存数据写入 数据文件 这可以防止那些中断的交易修改数据文件 另一方面 通过事务日志文件 可以完成数据库的修 复与重建 日志文件用来记录数据库中已发生的所有修 改和已执行的修改事务 并将结果保存到独立的文件中 对于每一次数据库更新的过程 事务日志文件都有非常全 面的记录 因此如果出现数据库系统崩溃 数据库管理员 DBA 可以根据这些记录将数据库恢复到更新前的状态 以避免数据的丢失 每个数据库必须至少有一个日志文件 也可以根据情 况使用多个 日志文件的默认文件扩展名是.1df 建立 数据库时 SQL Server会默认自动建立一个数据库的日 志文件 用户也可以添加日志文件 3 次要数据文件 次要数据文件相对于主要数据文件而存在 对主要数 据文件进行补充和扩展 当数据库足够大 超过了单个 Windows文件的最大值 主文件无法包含数据库中所有的 数据时 可以使用次要数据文件 这样数据库就能继续增 长 次要数据文件含有主要数据文件中不能容纳的所有 数据 另一方面 使用多个次要数据文件可提高磁盘的利用 率 通过将多个次要数据文件分散到不同磁盘驱动器上 减少磁盘驱动器的负载 提高文件的读写速度 多个文件 对于数据略多的数据库来说 备份和恢复都会很方便 次要数据文件是可选的 由用户定义并存储用户数 据 有些数据库可能没有次要数据文件 而有些数据库则 有多个次要数据文件 次要数据文件的默认文件扩展名 是.ndf 使用多个次要文件需要占用更多的磁盘空间 这是因为每个文件中都有自己的一套B树组织方式 和自己的增 长空间 还会产生相应的碎片 但是在大多数情况下 多占 点磁盘空间带来的副作用远远小于多文件带来的好处 4 S Q L Server 2005的文件组 4.1 文件和文件组的关系 在SQL Server中 通过文件组这个逻辑对象可将分 布在多个逻辑分区的文件集合起来 以便于管理 数据分 配和放置 及实现数据负载平衡 如图1所示 逻辑数据 库由一个或者多个文件组构成 文件组管理着磁盘上的文 件 而文件中存放着SQL Server的实际数据。 例如 可以分别在3个硬盘驱动器上创建3个文件 A.ndfB.ndf和 C.ndf 并将文件 A B指派到文件组 A 中 文件C指派给文件组B 然后 可以明确地在文件组 A 上创建一个表 对表中数据的查询将分散到3个磁盘上 从而使得数据库性能得以提高 4.2 文件组在实践应用中的优势 1 可改善数据库性能 系统管理员可为每个磁盘驱 动器创建文件组 然后将特定的表 索引 或表中的textnt - ext或ima g e数据指派给特定的文件组 同一组内的不同文 件分布在不同的硬盘中 这样极大地提高了系统IO性能 |