当前位置:首页 > 数据库 > Sqlserver

Sql server 文件组和文件

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]NOTNULL,
    [stuname][varchar](100) NOTNULL,
    [professionid][int]NULL,PRIMARYKEYCLUSTERED 
    (
        [stuid]ASC
    )
) ON[PRIMARY]

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

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

 

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


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐