前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQLServer数据库文件组相关知识笔记

SQLServer数据库文件组相关知识笔记

作者头像
IT技术分享社区
发布2021-03-18 15:16:17
4380
发布2021-03-18 15:16:17
举报
文章被收录于专栏:SQLServerIT技术分享社区

1、数据库文件组概念

数据库文件被组织在称为“文件组”的逻辑组中。文件组是所创建对象(如表或索引)的目标容器,对象数据将分散在其所在目标文件组的文件中,文件组可以按你要求的方式来控制对象的物理位置。

每个数据库有一个主文件组。主文件组包含主要数据文件和未放入其他文件组的所有次要文件。用户可以创建自定义的文件组,用于将数据文件集合起来,这样以便于后续管理、数据分配和放置。

2、文件组的工作机制

文件组对组内的所有文件都使用按比例填充策略。将数据写入文件组时,数据库引擎会根据文件中的可用空间量将一定比例的数据写入文件组中的每个文件,而不是将所有数据先写满第一个文件,然后再写入下一个文件。例如,如果文件file1有100MB可用空间,文件file2有200 MB可用空间,则从文件f1中分配一个区,从文件f2中分配两个区,依次类推。这样,两个文件几乎同时填满。

如果数据库设置为自动增长,文件组中的所有文件一满,数据库引擎就自动按照循环方式一次扩展一个文件,以容纳更多数据。

3、数据库文件组的作用

改善数据库的性能:允许跨多个磁盘、多个磁盘控制器或RAID (独立磁盘冗余阵列)系统创建数据库。当对数据进行访问时,多个读/写磁头可以同时并行地访问数据。从而加快数据库操作的速度。

可以在特定的文件组中创建表:根据业务的需要,可以将特定表的所有I/O都定向到一个特定的磁盘。从而提高数据库的性能。

4、数据库文件组的设计原则

  • 一个数据库文件或文件组不能由多个数据库使用。
  • 一个数据库文件只能属于一个文件组。
  • 数据和事务日志信息不能放在同一个文件或文件组。
  • 事务日志文件不能属于任何文件组。

5、数据库文件组的使用建议

  • 一般情况下数据库在只有单个数据文件和单个事务日志文件的情况下性能良好。
  • 如果使用多个数据库文件的话,应该为附加的数据库文件创建第二个文件组,并将其设置为默认文件组。这样,主文件将只包含系统表和对象。
  • 要使性能最大化,需要尽可能多的不同的可用本地物理磁盘上创建文件或文件组。将争夺磁盘空间最激烈的对象放在不同的文件组中
  • 使用文件组将对象放置在特定的物理磁盘上。
  • 将在同一联接查询中使用的不同表置于不同的文件组中。由于采用并行磁盘I/O对联接数据进行搜索,可以改善数据库性能。
  • 将最常访问的表和属于这些表的非聚集索引置于不同的文件组中。如果文件位于不同的物理磁盘上,由于采用并行I/O,可以改善数据库性能。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明互联网技术分享社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、数据库文件组概念
  • 2、文件组的工作机制
  • 3、数据库文件组的作用
  • 4、数据库文件组的设计原则
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档