标签:
昨天讲到的是 页和区, 今天就想写一些 数据文件和日志文件那些事。
根据MSDN library,SQL Server有三种类型的文件,分别是:
从示例数据库我们可以看到,里面有一个主数据文件和一个日志文件,次要数据文件不是必须的。
同时每个文件都有一个文件号,fileID or filenum,用来标识该文件。
比如上一篇文章的DBCC page 命令,唯一标识数据库中的一页,需要 数据库名称或者dbid + 文件号filenum + 页号pagenum
dbcc page ( {‘dbname‘ | dbid}, filenum, pagenum [, printopt={0|1|2|3} ])
#命名
每个文件都有两个名称,分别是 逻辑名称(logical_file_name) 及 路径和文件名组成的物理文件名(os_file_name).
前者必须唯一,后者必须符合操作系统的命名规则。
#文件组
对于文件我们还能按文件组来管理,从主文件组的文件数 1 可以看出,文件组是不包含日志文件的。
另外我们还可以添加自定义的文件组。
使用文件组能够帮助数据布局和管理任务,比如备份和还原
#文件增长
SQLServer 支持用户设置数据库初始值、最大值。
对于数据文件,把不同的文件放在不同的硬盘加快读写。
但需要注意的是对于新数据,SQLServer是按同一文件组中所有文件现有空闲空间的大小比例来分配新数据写入的文件。
比如两个文件空闲空间分别为 2GB和1GB,那么新数据将按 2:1的比例分别写入两个文件。
日志文件则不一样,由于日志文件是严格按顺序写入(估计是为了确保数据库的完整性和方便数据恢复),所以多个日志文件没法提高并发性能也就没有按比例写入一说。
在《Microsoft SQL Server企业级平台管理实践》一书中有如下建议:
待补 TBD
参考:
https://msdn.microsoft.com/zh-cn/library/ms179316(v=sql.105).aspx
《Microsoft SQL Server企业级平台管理实践》
标签:
原文地址:http://www.cnblogs.com/bournexian/p/4385743.html