当前位置:首页 » 编程语言 » sql分区文件组
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql分区文件组

发布时间: 2022-06-30 08:36:39

1. 如何在sql server 中创建文件组

create database GSM1

on primary --主文件及主文件组

(

name = main1, --逻辑文件名

filename = 'c:program filesmicrosoft sql servermssql.2mssqldatamian1.mdf', --物理文件名

size = 10MB, --初始大小

filegrowth = 1MB --增长速度

),

(

name = main2,

filename = 'c:program filesmicrosoft sql servermssql.2mssqldatamian2.ndf',

size = 10MB, filegrowth = 1MB

),

filegroup group1 --文件组group1

(

name = data, filename = 'F:数据库GSMdata.ndf', size = 5MB, filegrowth = 1MB

),

filegroup group2 --文件组group2

(

name = indexInfo, filename = 'D:SQL2005indexGSMindexInfo.ndf', size = 5MB, filegrowth = 1MB

)

log on --日志文件

(

name = 'GSM.log',

filename = 'c:program filesmicrosoft sql servermssql.2mssqldataGSMlog.ldf' ,

size = 2048KB , filegrowth = 1MB

)

(1)sql分区文件组扩展阅读:

SQL SERVER中文件组的用途

1、在指定文件组里创建表

--在指定文件组中创建文件

create table Test

(

Tid int primary key identity,

Title01 nvarchar(100) default('标题01'),

Title02 nvarchar(100) default('标题02'),

Title03 nvarchar(100) default('标题03'),

DataStatus tinyint default(0) --0~255 size:1字节

) on TestData

2、利用文件组创建数据库

--创建数据库

create database BigValues

on primary --数据库文件,主文件组

(

name='BigValues_Data', --逻辑名

size=10mb, --初始大小

filegrowth=10%, --文件增长

maxsize=1024mb, --最大值

filename=N'E:\SQL\BigValues_Data.mdf'--存放路径(包含文件后缀名)

),

(

name='BigValues_Data1',

size=10mb,

filegrowth=10%,

maxsize=1024mb,

filename=N'F:\Work\SQL\BigValues_Data1.mdf'

),

filegroup TestData --TestData文件组(表创建到不同的文件组里面可以分担压力)

(

name='BigValues_Data_Num1',

size=10mb,

filegrowth=10%,

maxsize=1024mb,

filename=N'E:\SQL\BigValues_Data_Num1.ndf'

),

(

name='BigValues_Data_Num2',

size=10mb,

filegrowth=10%,

maxsize=1024mb,

filename=N'F:\Work\SQL\BigValues_Data_Num2.ndf'

)

log on --日记

(

name='BigValues_Log1',

size=5mb,

filegrowth=5%,

filename=N'E:\SQL\BigValues_log1.ldf'

),

(

name='BigValues_Log2',

size=5mb,

filegrowth=5%,

filename=N'F:\Work\SQL\BigValues_log2.ldf'

)

go

2. sqlserver2008怎么实现自动分区表

/*第一步:创建分区函数*/

Create partition function Part_func_Bag(varchar(20)) as range right

/*正式区间

for values(N'01100923909760', N'01100936207030', N'6311001806524',N'92451400060101');*/for values(N'91701311710807', N'07201280707101', N'8011011089884',N'80241001430714');goselect * from Bag where BagCode in(N'91701311710807', N'07201280707101', N'8011011089884',N'80241001430714')

/*第二步:创建文件组和文件*/

alter database ZXAutoCode add filegroup [Bag_1]; alter database ZXAutoCode add filegroup [Bag_2];alter database ZXAutoCode add filegroup [Bag_3];alter database ZXAutoCode add filegroup [Bag_4];goalter database ZXAutoCode add file (name = Bag1_data,filename = 'E:\MSSQL\TESTDATA\Bag1_data.ndf',size = 3MB) to filegroup [Bag_1];alter database ZXAutoCode add file (name = Bag2_data,filename = 'E:\MSSQL\TESTDATA\Bag2_data.ndf',size = 3MB) to filegroup [Bag_2];alter database ZXAutoCode add file (name = Bag3_data,filename = 'E:\MSSQL\TESTDATA\Bag3_data.ndf',size = 3MB) to filegroup [Bag_3]; alter database ZXAutoCode add file (name = Bag4_data,filename = 'E:\MSSQL\TESTDATA\Bag4_data.ndf',size = 3MB) to filegroup [Bag_4]; go

/*第三步:创建分区方案并关联到分区函数*/

Create partition scheme Part_func_Bag_scheme as partition Part_func_Bag to ([Bag_1],[Bag_2],[Bag_3],[Bag_4],[Primary]); go

/*第四步 重建索引(删除聚集索引以及需要分区字段的索引后重建该类索引,表被按分区值将分配到各文件组。数据在这一步开始转移。)*/

EXEC sp_helpindex N'Bag' --查看orders中使用的索引 drop index idx_cl_od on Bag;gocreate clustered index idx_cl_od on Bag(bagcode) on Part_func_Bag_scheme(bagcode); go

3. SQL SERVER中怎么删除文件组和文件

文件与文件组的删除,如果因为以前的分区方案不合理,需要取消分区,或者按另外一种方式分区,就需要涉及到文件与文件组的删除操作,如果没有掌握正确步骤,有时候可能无法删除,会提示你“文件不为空,无法删除”或者“文件组不为空,不能删除”等等,如果不知道技巧,会很郁闷!本人就曾经经历过这样的郁闷!在网络也没找到正确答案。
1、 文件的删除:首先要先清空文件里的数据,删除之前数据一定要记得先备份,可将数据复制到其他表,然后执行:
DBCC SHRINKFILE (FileName, EMPTYFILE);
文件中的内容删除后,再执行删除文件命令,DataBaseName表示数据名,FileName 表示文件名:
ALTER DATABASE [DataBaseName] REMOVE FILE FileName;
2、文件组的删除:
当文件组的文件被删除后,按正常理解,应该就可以直接删除文件组,实际是不行的,你无法删除文件组。
因为还有几个东西依赖文件组,一是分区方案,二是使用该分区方案的分区表。
所以要删除分区方案才能删除文件组。但要删除分区方案之前要先更改依赖它的分区表,使其不依赖它。
这个主要是更改分区表的分区列,使其不使用分区方案,如果实在不会更改,在表里数据已经备份的前提下,可以直接删除表来解决。
然后再删除分区表方案,最后就可以直接删除文件组了。
总结前面的删除过程:
1、修改分区表,使其不依赖分区方案。
2、删除分区方案(依赖要删除的文件组)。
DROP PARTITION SCHEME [Part_func_scheme_Name]
3、直接删除文件组。
ALTER DATABASE [DataBaseName] REMOVE FILEGROUP [FGName]

DataBaseName表示数据名,FGName 表示文件组名。

4. SQL文件组有什么作用,有心作答的请看完提问内容再作答,谢谢

(name=spri2_dat,
filename='f:\database\spri2dt.ndf')
这里 spri2_dat 是文件组,是个概念的东西,抽象的
f:\database\spri2dt.ndf这个事文件,是实际的,实实在在存放在系统里的一个文件。
定义的作用就是,指定f:\database\spri2dt.ndf 给spri2_dat用,不好理解是吧
举个例子,初中高中学校里有很多班级每个班级都有固定的教室是吧
比如高三2班,我们说你是高三二班的,其实高三二班是个概念,抽象的,我让你去把高三二班给灭了,给炸了,你也不知道是该杀人还是放火或者怎么样,就算你这样,高三二班还是存在的,
现在我们指定一个物理地址,比如教学楼二层201作为这个班的固定教室,这个地址是实实在在存在的,吧它灭了,他就真被灭了
这里班级名称就像文件组,教室就像文件,
一个学校可以定义很多班级,也可以有很多教室,但是这个教室没有定义给哪个班级使用前,这个班级是不能上课的,就像文件组是不能存数据的,一个学生入学了,我们不会直接把他扔到哪个教室,而是给他分班,然后根据班级找匹配的教室,就像数据并不直接跟文件对接,而是归入文件组。
指定好后,教室也可以跟着班级名称叫高三二班了,很容易混淆,而且教室今天给了高三2班,明年又可能给1班,
在数据库里,文件毕竟不像建筑那么值钱,所以我们都是新建文件了,而且爱建多少建多少,想建多大建多大

5. Sql Server数据库属性“文件组”有何作用如何使用

SQLServer中一个数据库可以对应多个物理文件,其中有一个的主数据库文件,扩展名为MDF,其他为次数据库文件,扩展名为NDF。可以将不同的文件存放在不同的驱动器上,可以提高数据访问速度。文件组是逻辑概念,主要目的是将文件分组管理。createdatabasedb3onprimary--主文件组(name='db3_dat1',--数据库主文件filename='d:\db3_dat1.mdf',size=10mb,maxsize=100mb,filegrowth=10%),(name='db2_dat2',--主文件组,是次数据库文件filename='d:\db2_dat2.ndf',size=10mb,maxsize=100mb,filegrowth=10%),filegroupdb3g1--第2个文件组(name='db3_dat3',--第2个文件组中的次数据库filename='d:\db2_dat3.ndf',size=10mb,maxsize=30mb,filegrowth=5mb),(name='db3_dat4',--第2个文件组中的次数据库filename='d:\db2_dat4.ndf',size=5mb,maxsize=30mb,filegrowth=5mb),filegroupdb3g2--第三个文件组(name='db3_dat5',----第三个文件组中的次数据库filename='d:\db2_dat5.ndf',size=10mb,maxsize=50mb,filegrowth=20%)logon(name='db3_log',--日志文件filename='d:\db3_log.ldf',size=20mb,maxsize=100mb,filegrowth=10mb)

6. sql创建文件组的命令

--【添加文件组】
alter
database
zhh
add
filegroup
[201109]
--添加文件并把其指向指定文件组
alter
database
zhh
add
file(
name=n'201109',
filename='e:\201109.ndf',
size=3mb,
maxsize=100mb,
filegrowth=5mb
)to
filegroup
[201109]
--删除文件
alter
database
zhh
remove
file
[201109]
--remove
--修改文件
use
master;
go
alter
database
adventureworks
modify
file
(name
=
test1dat3,
size
=
20mb);
go
--移动文件
use
master;
go
alter
database
adventureworks
modify
file
(
name
=
test1dat2,
filename
=
n'c:\t1dat2.ndf'
);
go

7. SQL更改表所在的文件组有什么用

文件组的作用是存储路径,你说说的表的文件组那就是分区表要用到的,分区表设多个文件组的目的就是提高I/O的读写速度,对于一个数据库建多个文件组的目的也是为了分散存储。

8. sqlserver 2012 怎么建立分区

本文是我关于数据库分区的方案的一些想法,或许有些问题。仅供大家讨论。SqlServer (SqlServer 2005\SqlServer 2008)实现分区需要在企业版下进行.
SqlServer的分区分为大致有以下个过程:1、创建文件组用以存放数据文件 2、创建文件组用户数据文件 3、创建分区函数 4、创建分区方案 5、在分区方案下创建表
本文是在SqlServer2012 下完成的。
http://blog.csdn.net/fwj380891124/article/details/48372791

9. SQL Server中的文件组是什么意思

文件组就是一堆文件的一个总称,就像黑种人,白种人,黄种人,是一堆人的总称,但以颜色来标识,这就是逻辑上的分类,文件组也是一样只是逻辑上的分组,一个数据库可以看成很多个文件构成一个逻辑空间,它的数据越存越多,加入新的文件就越来越多,这些文件就可以作为一个组来管理。

10. sql server怎么建立分区表

打开MsSQL2008,找到作业该项,如果打不开或者SQL Server代理是未启动状态,请先在windows服务中启动SQL Server代理(参考图片),

2
右击MsSQL2008对象资源管理器中的作业,选择新建作业,输入该作业你想用的名称,类别不用管,说明里面是输入一些该作业完成的功能,可不写,请务必勾选已启用复选框.

3
点击新建作业窗体左侧的步骤项,点击右侧区域下方的新建按钮,输入步骤名称,类型请选择Transact-SQL脚本(T-SQL),运行身份默认,数据库请选择要进行分区的数据库,请不要选择master默认的,命令文本框中输入如下代码:

/*--------------------创建数据库的文件组和物理文件------------------------*/
declare @tableName varchar(50), @fileGroupName varchar(50), @ndfName varchar(50), @newNameStr varchar(50), @fullPath

varchar(50), @newDay varchar(50), @oldDay datetime, @partFunName varchar(50), @schemeName varchar(50)

set @tableName='要分区的数据库名称'
set @newDay=CONVERT(varchar(100), GETDATE(), 23)--23:按天 114:按时间
set @oldDay=cast(CONVERT(varchar(10),dateadd(day,-1,getdate()), 120 ) as datetime)
set @newNameStr=Replace(Replace(@newDay,':','_'),'-','_')
set @fileGroupName=N'G'+@newNameStr
set @ndfName=N'F'+@newNameStr+''
set @fullPath=N'E:\\SQLDataBase\\UserData\\'+@ndfName+'.ndf'
set @partFunName=N'pf_Time'
set @schemeName=N'ps_Time'

--创建文件组
if exists(select * from sys.filegroups where name=@fileGroupName)
begin
print '文件组存在,不需添加'
end
else
begin
exec('ALTER DATABASE '+@tableName+' ADD FILEGROUP ['+@fileGroupName+']')
print '新增文件组'
if exists(select * from sys.partition_schemes where name =@schemeName)
begin
exec('alter partition scheme '+@schemeName+' next used ['+@fileGroupName+']')
print '修改分区方案'
end
if exists(select * from sys.partition_range_values where function_id=(select function_id from

sys.partition_functions where name =@partFunName) and value=@oldDay)
begin
exec('alter partition function '+@partFunName+'() split range('''+@newDay+''')')
print '修改分区函数'
end
end

--创建NDF文件
if exists(select * from sys.database_files where [state]=0 and (name=@ndfName or physical_name=@fullPath))
begin
print 'ndf文件存在,不需添加'
end
else
begin
exec('ALTER DATABASE '+@tableName+'ADD FILE (NAME ='+@ndfName+',

FILENAME = '''+@fullPath+''')TO FILEGROUP ['+@fileGroupName+']')
print '新创建ndf文件'
end
/*--------------------以上创建数据库的文件组和物理文件------------------------*/

--分区函数
if exists(select * from sys.partition_functions where name =@partFunName)
begin
print '此处修改需要在修改分区函数之前执行'
end
else
begin
exec('CREATE PARTITION FUNCTION '+@partFunName+'(DateTime)AS RANGE RIGHTFOR VALUES ('''+@newDay

+''')')
print '新创建分区函数'
end

--分区方案
if exists(select * from sys.partition_schemes where name =@schemeName)
begin
print '此处修改需要在修改分区方案之前执行'
end
else
begin
exec('CREATE PARTITION SCHEME '+@schemeName+' AS PARTITION '+@partFunName+' TO

(''PRIMARY'','''+@fileGroupName+''')')
print '新创建分区方案'
end

print '---------------以下是变量定义值显示---------------------'
print '当前数据库:'+@tableName
print '当前日期:'+@newDay+'(用作随机生成的各种名称和分区界限)'
print '合法命名方式:'+@newNameStr
print '文件组名称:'+@fileGroupName
print 'ndf物理文件名称:'+@ndfName
print '物理文件完整路径:'+@fullPath
print '分区函数:'+@partFunName
print '分区方案:'+@schemeName

/*
--查看创建的分区函数
select * from sys.partition_functions
--查看分区函数的临界值
select * from sys.partition_range_values
--查询分区方案
select * from sys.partition_schemes
--查询表数据在哪个分区中存储,where条件查询第一个分区中存在的数据
select *,$partition.pf_SaveTime(分区字段) as Patition from 表名 where $partition.pf_SaveTime(分区字段)=1
*/
GO
点击确定按钮

上述代码中的变量名称,路径等均可自行修改,上述是按天为单位,以G开头的日期作为文件组名称,以F开头的日期作为物理分区文件名即ndf文件名称

4
选择新建分区左侧的计划项,然后点击右侧区域下方的新建按钮,设定新建分区的时间间隔,图中设置的是每天创建一个新的分区,用户也可以自行修改,按月,按周,按自定义时间等
其他的条目,通知,警报,目标可自行设置,也可不设置,至此自动创建分区的计划任务已成功设置.

END
步骤二:对表应用分区方案和分区函数
右击要分区的表,选择存储菜单下的创建分区,上述步骤一中创建的分区函数是按datetime类型进行的分区,所以创建分区的时候需要选择相应类型的字段作为分区依据,用户也可以根据int型或其他类型的字段进行分区,选择下一步,使用现有分区函数下一步使用现有分区方案,下一步会自动按照分区方案执行的日期进行分区,继续点击下一步选择立即执行,完成后即可完成的整体的表分区自动执行.

需注意:刚设置完第一步的计划任务,可能不会执行第一步的分区方案的代码,也就意味着没有创建分区函数和分区方案,第二步设置的时候使用现有分区函数和使用现有分区方案也就不可用,可先把第一步的代码执行一遍即可.