码迷,mamicode.com
首页 > 数据库 > 详细

Sql server 文件组和文件

时间:2015-06-19 18:35:53      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

1,文件组和文件的作用

Sql Server的数据存储在文件中,文件是实际存储数据的物理实体,文件组是逻辑对象,Sql server通过文件组来管理文件。

技术分享

 

一个DataBase有一个或多个FileGroup,PrimaryFileGroup是必需的,用户可以根据需要添加FileGroup。每一个FileGroup管理一个或多个文件,其中PrimaryFileGroup管理一个master data file,扩展名是.mdf,这个file是系统默认生成的;扩展名是.ndf的文件是用户根据需要添加的。

文件组管理着磁盘上的文件,文件中存放着SQL SERVER database的实际数据。

2,示例db

2.1示例db的FileGroup如下

Primary 是一个FileGroup,是个默认的文件组。如果在create table,create index中没有指定FileGroup,将使用Default FileGroup管理的文件来存储实际的数据。

技术分享

2,每一个FileGroup都有相应的File,File是实际存储数据的物理实体。

技术分享

File有两种类型,一种是存储数据的rows data,一种是存储日志的log。可以从path中找到磁盘上物理file。

File中存储的数据经过sql server的处理,存储的是sql server能够识别的格式化数据。

3,使用文件组管理文件的好处

在实际的开发过程中,user只需要关注逻辑对象FileGroup,而不用关心数据的物理存储,即使物理存储的file变更,也不影响应用程序。如果同一个FileGroup内的文件分布在不同的磁盘上,在读取数据时,Sql Server能同时从不同的磁盘上读取数据,极大的提高IO性能,这种实现方式是分区表实现的基础,分区表能够将不同的数据子集存储在不同的磁盘上。

Tsql 查看database的filegroup和file

select * 
FROM sys.database_files

select *
from sys.filegroups

技术分享

 

4,使用文件组的情况

4.1 在创建表的时候,使用on子句指定FileGroup,那么该表的数据将存储在该FileGroup管理的File中。

CREATE TABLE [dbo].[student](
    [stuid] [int] NOT NULL,
    [stuname] [varchar](100) NOT NULL,
    [professionid] [int] NULL,PRIMARY KEY CLUSTERED 
    (
        [stuid] ASC
    )
) ON [PRIMARY]

4.2 在创建索引的时候,使用on子句指定FileGroup,那么该表的索引结构将存储在该FileGroup管理的File中。

CREATE NONCLUSTERED INDEX [idx_student_stuname] 
ON [dbo].[student]( [stuname] ASC ) 
ON [PRIMARY]

 

Sql server 文件组和文件

标签:

原文地址:http://www.cnblogs.com/ljhdo/p/4588372.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!