位置: 编程技术 - 正文

SQLServer中数据库文件的存放方式,文件和文件组(sql server的数据库)

编辑:rootadmin
简介

在SQL SERVER中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已.SQL SERVER通过管理逻辑上的文件组的方式来管理文件.理解文件和文件组的概念对于更好的配置数据库来说是最基本的知识。

理解文件和文件组

在SQL SERVER中,通过文件组这个逻辑对象对存放数据的文件进行管理.

先来看一张图:

我们看到的逻辑数据库由一个或者多个文件组构成

而文件组管理着磁盘上的文件.而文件中存放着SQL SERVER的实际数据.

为什么通过文件组来管理文件

对于用户角度来说,需对创建的对象指定存储的文件组只有三种数据对象:表,索引和大对象(LOB)

使用文件组可以隔离用户和文件,使得用户针对文件组来建立表和索引,而不是实际磁盘中的文件。当文件移动或修改时,由于用户建立的表和索引是建立在文件组上的,并不依赖具体文件,这大大加强了可管理性.

还有一点是,使用文件组来管理文件可以使得同一文件组内的不同文件分布在不同的硬盘中,极大的提高了IO性能.

SQL SERVER会根据每个文件设置的初始大小和增长量会自动分配新加入的空间,假设在同一文件组中的文件A设置的大小为文件B的两倍,新增一个数据占用三页(Page),则按比例将2页分配到文件A中,1页分配到文件B中.

文件的分类

首要文件:这个文件是必须有的,而且只能有一个。这个文件额外存放了其他文件的位置等信息.扩展名为.mdf 次要文件:可以建任意多个,用于不同目的存放.扩展名为.ndf 日志文件:存放日志,扩展名为.ldf

在SQL SERVER 之后,还新增了文件流数据文件和全文索引文件.

上述几种文件名扩展名可以随意修改,但是我推荐使用默认的扩展名。

我们可以通过如下语句查看数据库中的文件情况:

还有一点要注意的是,如果一个表是存在物理上的多个文件中时,则表的数据页的组织为N(N为具体的几个文件)个B树.而不是一个对象为一个B树.

创建和使用文件组

创建文件或是文件组可以通过在SSMS中或者使用T-SQL语句进行。对于一个数据库来说,既可以在创建时增加文件和文件组,也可以向现有的数据库添加文件和文件组.这几种方式大同小异.下面来看一下通过SSMS向现有数据库添加文件和文件组.

首先创建文件组:

文件组创建好后就可以向现有文件组中添加文件了:

下面我们就可以通过语句将创建的表或者索引加入到新的文件组中了:

使用多个文件的优点与缺点

通常情况下,小型的数据库并不需要创建多个文件来分布数据。但是随着数据的增长,使用单个文件的弊端就开始显现。

首先:使用多个文件分布数据到多个硬盘中可以极大的提高IO性能.

其次:多个文件对于数据略多的数据库来说,备份和恢复都会轻松很多.我碰见过遇到一个G的数据库,手头却没有这么大的存储设备…

但是,在数据库的世界中,每一项好处往往伴随着一个坏处:

显而易见,使用多文件需要占用更多的磁盘空间。这是因为每个文件中都有自己的一套B树组织方式,和自己的增长空间。当然了,还有一套自己的碎片-.-但是在大多数情况下,多占点磁盘空间带来的弊端要远远小于多文件带来的好处.

总结

本文对SQL SERVER中文件和文件组的概念进行了简单阐述,并在文中讲述了文件和文件组的配置方式。按照业务组织好不同的文件组来分布不同的文件,使得性能的提升,对于你半夜少接几个电话的帮助是灰常大滴:-)

推荐整理分享SQLServer中数据库文件的存放方式,文件和文件组(sql server的数据库),希望有所帮助,仅作参考,欢迎阅读内容。

SQLServer中数据库文件的存放方式,文件和文件组(sql server的数据库)

文章相关热门搜索词:sqlserver中数据库视图分类,sqlserver数据库使用教程,sqlserver中数据库帐号登录,sqlserver中数据库视图分类,sqlserver中数据库是由什么和什么组成的,sqlserver中数据库的安全性怎么没了,sqlserver中数据库收缩,sqlserver中数据库收缩,内容如对您有帮助,希望把文章链接给更多的朋友!

三种SQL分页查询的存储过程代码 --根据MAX(MIN)IDCREATEPROC[dbo].[proc_select_id]@pageindexint=1,--当前页数@pagesizeint=,--每页大小@tablenameVARCHAR()='',--表名@fieldsVARCHAR()='',--查询的字段集合@keyidVARC

理解SQL SERVER中的逻辑读,预读和物理读 SQLSERVER数据存储的形式在谈到几种不同的读取方式之前,首先要理解SQLSERVER数据存储的方式.SQLSERVER存储的最小单位为页(Page).每一页大小为8k,SQLSERVER对

sqlserver 触发器实例代码 定义:何为触发器?在SQLServer里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。常见的触发

标签: sql server的数据库

本文链接地址:https://www.jiuchutong.com/biancheng/348490.html 转载请保留说明!

上一篇:使用BULK INSERT大批量导入数据 SQLSERVER(bulk insert formatfile)

下一篇:三种SQL分页查询的存储过程代码(sqlserver分页查询)

  • 增值税有哪几类
  • 增值税冲红附加税费可以退吗
  • 电子税务局中在哪看本月开票统计表
  • 快递费属于什么合同
  • 餐饮通用机打发票可以报销吗
  • 资产负债表中其他流动资产包括哪些科目
  • 超范围经营是不是就等于无证经营
  • 汇总记账凭证核算组织程序的缺点主要有
  • 借款业务的会计分录
  • 红冲上月的其他应收款凭证怎么做?
  • 营改增退税政策
  • 工会经费有关的增值税能否抵扣?
  • 购买金税盘需要法人去税务局进行信息采集吗
  • 小规模纳税人优惠政策类型怎么选
  • 绿植租赁公司都适合什么名字
  • 核定征收的企业不能弥补亏损
  • 代垫资金的代购是什么
  • 腾讯手游助手遇到未知错误
  • 购买商品接受劳务的现金流包括哪些
  • 应收账款贷方余额怎么在资产负债表中填列
  • 税盘没反应
  • thinkphp5.0自定义路由
  • deepin隐藏分区
  • 会计科目在建工程包括哪些
  • 系统之家装机可靠吗
  • PHP:pg_convert()的用法_PostgreSQL函数
  • 本期应计提坏账损失700元调整前坏账准备贷方余额500元
  • 跨国并购融资问题
  • 发放职工工资计入什么会计科目
  • 很有意思的一段话
  • php修改ip地址
  • 企业发生的与日常经营活动无直接关系的各项利得
  • 小规模与一般纳税人做账区别
  • 西安微信公众号开发
  • easyui表格分页
  • php连接redis集群
  • 修改命令的快捷键
  • 爱上源码,重学Spring IoC深入
  • 研发费用如何做加计扣除
  • 小规模纳税人采购需要发票吗
  • 基本户 变更
  • wordpress加速
  • 河南巩义黄河治理项目土方工程有哪些
  • 小规模季报利润表的本月数怎么报
  • 商誉减值每年都要调整吗
  • Windows下Postgresql数据库的下载与配置方法
  • 金税盘抵扣税款分录怎么做
  • 以前年度损益调整
  • 公司贷款可以转私户吗
  • 单位租的个人房怎么入账
  • 应付账款期初期末
  • 股东借款转实缴资本
  • 应收账款因质量问题被扣除的损失可以税前扣除吗
  • 长期借款短期利息怎么算
  • 公司车辆交强险怎么网上买
  • 汽车销售公司购入汽车会计分录
  • 分配现金股利的顺序
  • 办税人员可以是开票员吗
  • 私人贴现利息如何交税
  • 残疾人保障金必须交吗
  • 研发费用如何做分录分析
  • 中小型企业会计
  • 纳税人虽设置账簿,但账目混乱
  • ubuntu的系统设置在哪里
  • 服务器上文件共享
  • Win10 Mobile 10563预览版微软官方模拟器下载
  • windowsserver2008r2密码重置
  • wmiprvse.exe这是什么进程
  • linux 使用技巧
  • centos soft lockup
  • thinkpade431升级内存多大好
  • cocos2d android 游戏开发学习——CCAction(二)
  • 批处理系统的应用场景
  • opengl实现光线追踪
  • js区分浏览器页面大小
  • linux守护进程管理
  • jquery树形菜单
  • jquery mobile开发工具
  • 山西电子税务局官网app
  • 彩票中奖归出钱人还是中奖人
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设