標籤:style blog http io 使用 ar for 檔案 資料
背景知識:
分區表、可以把表中的資料按範圍儲存到不同的檔案組中。
舉個例子吧:
2014年以前的資料儲存到檔案組A
2014~2015的資料儲存到檔案組B
2015年以後的資料儲存到檔案組C
好處:
1、提高IO效能 --- 檔案組中的檔案可以位於不同的磁碟,多磁碟協同工作,提升效能。
2、方便管理 --- 備份方面為管理提供了更多的選擇,資料歸檔方便。
前期準備:添加檔案組與檔案
alter database Studio
add filegroup FG1;
go
alter database Studio
add filegroup FG2;
go
alter database Studio
add filegroup FG3;
go
alter database Studio
add file(name = FG1_File,filename=‘E:\DB\FG1_File.ndf‘);
go
alter database Studio
add file(name = FG2_File,filename=‘E:\DB\FG2_File.ndf‘);
go
alter database Studio
add file(name = FG3_File,filename=‘E:\DB\FG3_File.ndf‘);
go
操作 1、
建立分區表,分如下幾步
第一步 、
建立分區函數:
它用來把表從邏輯上分成不同的幾份 如: 0~2014,2014~2015,2015~....
create partition function pf_for_myTable(datetime)
as range left
for values(‘2014-01-01‘,‘2015-01-01‘);
go -- 把表從邏輯上分成三份。或是說三個不同的邏輯分區
第二步:
建立資料分割配置、它主要是把表的邏輯分區與資料庫中的檔案組綁定。比如說:第一個分區儲存到FG1,第二個分區儲存到FG2,第三個分區儲存到FG3
create partition scheme ps_for_myTable
as partition pf_for_myTable
to (FG1,FG2,FG3);
go
第三步:
建表
create table myTable2(DT datetime, DataValue nvarchar(30))
on ps_for_myTable(DT);
操作 2、
查看指定資料所在的分區
$partition.partition_function_name(value);
select $partition.pf_for_myTable(‘2014-10-04‘);
操作 3、
為表添加新的分區。
第一步:修改資料分割配置
指定下一個分區使用的檔案組。
alter partition scheme ps_for_myTable
next used [primary];
go
第二步:修改分區函數
alter partition function pf_for_myTable() -- 看到沒有這個沒有加datatime 加了就錯了
split range (‘2016-01-01‘);
go
操作 4、
移除分區
第一步:
alter partition function pf_for_myTable()
merge range(‘2016-01-01‘);
go
操作 5、
把分區移動到不同的表
前期準備工作
create table myTableHistory(DT datetime, DataValue nvarchar(30));
go -- 兩個表的定義要完全一樣,分不分區的沒有關係
第一步:
移動
alter table myTable2 switch partition 1
to myTableHistory;
go
它的基本文法如下:
alter table source_table_name switch [partition partition_number]
to [schema.] target_table_name [partition partition_number]
總結:
SQL Server 分區表的建立方法與管理