當前位置:首頁 » 編程語言 » 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型或其他類型的欄位進行分區,選擇下一步,使用現有分區函數下一步使用現有分區方案,下一步會自動按照分區方案執行的日期進行分區,繼續點擊下一步選擇立即執行,完成後即可完成的整體的表分區自動執行.

需注意:剛設置完第一步的計劃任務,可能不會執行第一步的分區方案的代碼,也就意味著沒有創建分區函數和分區方案,第二步設置的時候使用現有分區函數和使用現有分區方案也就不可用,可先把第一步的代碼執行一遍即可.