關於SQLSERVER表分割槽的介紹 二

2021-09-26 09:35:32 字數 3597 閱讀 4459

具體設計過程如下:

(1)首先建立乙個名為partiontest的資料庫。然後分別為資料庫partiontest新增四個檔案組,檔案組名依次為filegroup001~filegroup004,

然後為該資料庫新增四個資料檔案,分別命名為file001~file004,並將它們依次儲存到檔案組filegroup001~filegroup004中。

(2)以資料庫partiontest為例,右擊資料庫partiontest,從其快捷選單中選擇【屬性】命令,開啟【資料庫屬性】對話方塊。選擇該對話方塊中的

【選擇頁】列表中的【檔案】選項,然後單擊選項頁的【新增】按鈕,為該資料庫新增乙個檔案,將檔案的邏輯名命名為file001,然後單擊【檔案組】

列中的下拉列表,打卡【partiontest的新建檔案組】對話方塊,在【名稱】文字框中輸入需要命名的檔案組名稱,本示例使用filegroup001,

如下圖所示:

(3)按照上面介紹的方法建立剩餘的3個檔案及檔案組,最終效果如下圖所示:

注意:預設情況下sqlserver2005將使用於邏輯名稱相同的名稱作為資料庫的物理主檔名。因此,如果使用乙個統一的資料夾來儲存資料庫檔案,

就需要注意為不同資料庫的資料檔案設定不同的邏輯名稱。

(4)做好上述準備工作後,接下來就可以開始建立分割槽方案和分割槽函式了。首先建立乙個分割槽函式,所謂分割槽函式,就是一種用於規定如何將資料劃分到不同分割槽的

1 use partiontest

2 go

3 create partition function partionbyint(int)

4 as range left for values(100,200,300)

5 go

按鈕,建立名為partionbyint的分割槽函式。

(5)切換到【物件資源管理器】中,展開資料庫partiontest\【儲存】\【分割槽函式】節點,可以看到剛剛建立的分割槽函式partionbyint,如下圖所示:

1 use partiontest

2 3 go

4 5 create partition scheme partionbyintscheme

6 7 as partition partionbyint

8 9 to(filegroup001,filegroup002,filegroup003,filegroup004);

上述t-sql指令碼將建立乙個名為partionbyintscheme的分割槽方案。建立該方案時,通過as partition指定了用於建立分割槽方案的分割槽函式(即前面建立的分割槽函式partionbyint)。

(7)切換到【物件資源管理器】下,展開資料庫partiontest\【儲存】\【分割槽方案】節點,可以看到剛剛建立的分割槽方案partionbyintscheme,如下圖所示:

(8)接下來為了演示分割槽方案的使用方法,在此需要首先建立乙個資料表,本示例建立乙個名為testpartiontable的資料表。在【查詢編輯器】視窗中輸入下面的

t-sql指令碼:

1 use partiontest

2 go

3 create table testpartiontable

4 (id int not null,

5 itemno char(20),

6 itemname char(40)

7 )on partionbyintscheme(id);

分割槽的依據字段,即根據id值將資料分別儲存於不同的檔案(即分割槽)中。下面使用上面建立的分割槽方案,向資料表testpartiontable插入資料。在【查詢編輯器】

視窗中輸入下面的t-sql指令碼:

1 use partiontest

2 go

3 4 declare @count int

5 set @count=-25

6 while @count<=100

7 begin

8 insert into testpartiontable select

9 @count,'item'+convert(varchar(6),@count),'>0 and <100'

10 set @count=@count+1

11 end

12 13 set @count=101

14 while @count<=200

15 begin

16 insert into testpartiontable select

17 @count,'item'+convert(varchar(6),@count),'>100 and <200'

18 set @count=@count+1

19 end

20 21 set @count=201

22 while @count<=300

23 begin

24 insert into testpartiontable select

25 @count,'item'+convert(varchar(6),@count),'>200 and <300'

26 set @count=@count+1

27 end

28 29 set @count=301

30 while @count<=400

31 begin

32 insert into testpartiontable select

33 @count,'item'+convert(varchar(6),@count),'>300 and <400'

34 set @count=@count+1

35 end

36 set @count=401

37 while @count<=500

38 begin

39 insert into testpartiontable select

40 @count,'item'+convert(varchar(6),@count),'>400 and <500'

41 set @count=@count+1

42 end

43 44 select * from testpartiontable

45 go

(10)上述t-sql指令碼用於向資料表testpartiontable中輸入5組資料,這些資料將被自動地插入到4個不同的檔案(即4個不同的分割槽)file001~file004中。單擊【執行】按鈕,

執行上述t-sql指令碼,結果如下圖:

(11)如果想要查詢指定分割槽中包含的資料(例如檢視第3分割槽中所包含的記錄),可以使用如下t-sql指令碼:

1 use partiontest

2 go

3 4 select * from testpartiontable

5 where $partition.partionbyint(id)=3

6 go

(12)其中系統函式$partition,用於為指定的分割槽函式返回分割槽號,例如$partition.partionbyint(id)用於返回給id所處的分割槽號。單擊【執行】按鈕

所得查詢結果如下圖所示:

關於SQLSERVER表分割槽的介紹 二

具體設計過程如下 1 首先建立乙個名為partiontest的資料庫。然後分別為資料庫partiontest新增四個檔案組,檔案組名依次為filegroup001 filegroup004,然後為該資料庫新增四個資料檔案,分別命名為file001 file004,並將它們依次儲存到檔案組filegr...

SQL Server表分割槽

建立分割槽表start 分割槽函式 create partition function partfunbfq datetime as range right for values 20110101 20120101 20130101 20140101 20150101 分割槽方案 create pa...

Sqlserver表分割槽

use testsplitdb 先建立好資料庫 1.建立檔案組 alter database testsplitdb add filegroup testsplitgroup1 alter database testsplitdb add filegroup testsplitgroup2 alte...