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

1、数据库文件组概念

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

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

2、文件组的工作机制

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

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

3、数据库文件组的作用

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

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

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

  • 一个数据库文件或文件组不能由多个数据库使用。

  • 一个数据库文件只能属于一个文件组。

  • 数据和事务日志信息不能放在同一个文件或文件组。

  • 事务日志文件不能属于任何文件组。

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

  • 一般情况下数据库在只有单个数据文件和单个事务日志文件的情况下性能良好。

  • 如果使用多个数据库文件的话,应该为附加的数据库文件创建第二个文件组,并将其设置为默认文件组。这样,主文件将只包含系统表和对象。

  • 要使性能最大化,需要尽可能多的不同的可用本地物理磁盘上创建文件或文件组。将争夺磁盘空间最激烈的对象放在不同的文件组中

  • 使用文件组将对象放置在特定的物理磁盘上。

  • 将在同一联接查询中使用的不同表置于不同的文件组中。由于采用并行磁盘I/O对联接数据进行搜索,可以改善数据库性能。

  • 将最常访问的表和属于这些表的非聚集索引置于不同的文件组中。如果文件位于不同的物理磁盘上,由于采用并行I/O,可以改善数据库性能。

  • 不要将事务日志文件置于其中已有其他文件和文件组的物理磁盘上。

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html文件上传限制类型,html input file accept 上传文件类型限制格式 MIME 类型列表

单点登录改进版-使用ajax分发cookie避免重定向轮询前言 继上一篇博文:可跨域的单点登录(SSO)实现方案[附.net代码]虽然实现了单点登录,也存在很多不合理的地方.很多热心的朋友也给出了很多指导性的意见,特别是 LoveCoder提出的意见. 在很 ...Hello Java用记事本或者Eclipse编写…

jvm配置参数,查看大对象直接分配到老年代

看下如下代码: 配置参数 -Xms60m -Xms60m -XX:NewRatio2 -XX:SurvivorRatio8 -XX:PrintGCDetails 运行后看下如下,可以看到ParOldGen老年代,为used 20480K,也就20M,说明大对象直接分配到老年代 总结:

win10引导安卓x86_GPDwin安装安卓x86折腾记

接着之前的http://www.gcfan.cn/archives/3685说。王者荣耀下载下来问题依旧,我就在网上搜索答案。这里必须要感谢一下豆友“放不下的是筷子”,我搜索解决方案的时候发现了他的帖子,就跟帖问了他一下,结果他回复了我不少问题&…

DB Stack Overflow

Whats wrong with nullable columns in composite primary keys? 转载于:https://www.cnblogs.com/drizzlewithwind/p/5853091.html

电脑组装笔记:手把手教你如何自己组装电脑

目录 第一步:安装CPU 第二步:安装内存条 第三步:CPU风扇安装 第四步:电源安装 第五步:主板装入机箱 第六步:硬盘、固态硬盘、光驱的安装 第七步:线路连接 第八步:显示器的连接 第九步…

Amoeba for MySQL

Amoeba for MySQL Amoeba for MySQL致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当query 路由功能,专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、Query过滤、读写分…

jquery 过滤html代码,jquery – 如何使指令使用过滤的HTML属性?

您可以使用ng-attr,这将是更方便的解决方案. ng-attr-data-title将评估插值{{}}&使用值创建data-title属性.而不是使用data-title “{{‘我的字符串’| myfilter}}”使用ng-attr-data-title “{{‘我的字符串’| myfilter}}”标记...更新因为你得到的价值就像{{‘我的字符串…

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

1、数据库文件概念数据库文件是SQLServer数据库的物理体现,和计算机的普通文件一样存储在计算机的磁盘空间当中。作为数据库记录和日志等其他信息的存储载体。2、数据库文件分类数据库文件主要包括主数据库文件、次要数据库文件、日志文件。主数据库文件&#xff1a…

电商总结(七)缓存系统

前段时间,在和朋友讨论和研究缓存的使用,一直对缓存的使用搞的不太清楚,所以这次把和朋友讨论过缓存系统的设计的相关问题总结总结。 对于一个电商系统,缓存是重要组成部分,提升系统性能的主要方式之一就是缓存。它可以…

操作系统:Win10自带的8个基本功能非常实用

有些朋友总是喜欢安装很多第三方软件,但是却没有意识到win10自带的基本功能,比这些第三方软件更加好用。今天小编给大家介绍一下Win10自带的八个功能,希望对大家能有所帮助! 一、保护眼睛:深色主题 办公室职场人士&…

疯狂游戏型计算机配置清单,电脑配置清单

想自己组装电脑却不知如何配置?下面是出国留学网实用资料栏目精心整理的组装电脑配置清单,欢迎参考!【组装电脑配置清单】电脑硬件,包括电脑中所有物理的零件,以此来区分它所包括或执行的数据和为硬件提供指令以完成任务的软件。 …

在Android App中集成Google登录

技术文章 来源:码农网 发布:2016-09-19 浏览:194 摘要:今天,几乎所有的web和移动app都自带谷歌和Facebook登录,这对app开发者和用户来说是一个非常有用的功能,因为几乎每个人都有一个谷歌/ Gmai…

python程序写完后点哪个运行快_让你的Python运行更快

讨厌Python的人总是说,他们不想使用它的原因之一是它很 慢。嗯,特定程序(无论使用何种编程语言)是快还是慢,在很大程度上取决于编写该程序的开发人员以及编写优化而 快速的 程序的技能和能力 。因此,让我们证明一些人是错误的&…

C语言理论作业—2

1.C语言基本数据类型及其占用的内存空间大小分别是:int:4字节,short[int]:2字节,long[int]:4字节,unsigned[int]:4字节,unsigned short[int]:2字节,unsigned long[int]:4字节,char:1字节&#x…

html 科幻模板,html5酷炫宇宙科幻周年庆典专题动画模板

资源下载此资源下载价格为4D币,请先登录资源文件列表codedown123-0727-39/img/arrow-down-1.png , 1229codedown123-0727-39/img/arrow-down-2.png , 1190codedown123-0727-39/img/arrow-down-3.png , 1132codedown123-0727-39/img/asteroids-left.png , 7015codedo…

SQLServer数据库设置项梳理

一、自动选项AUTO CLOSEON:数据库将在最后一个用户退出后完全关闭,它占用的资源也将释放。当用户尝试再次使用该数据库时,该数据库将自动重新打开OFF:最后一个用户退出后数据库仍保持打开对于SQLServer Desktop Engine或 SQL Serv…

SQLServer创建数据库详解

1、创建数据库介绍在创建数据库之前,需要先确定数据库的名称、所有者、大小、存储该数据库的文件和文件组。数据库所有者:创建数据库的用户。一般情况下,大多数产品对象由数据库所有者拥有。2、创建数据库注意事项创建数据库需要拥有CREATE D…