SQL Server 2005的表分割槽技術

2021-05-01 16:34:26 字數 1626 閱讀 7972

今天來討論一下sql 2005的表分割槽技術,有興趣的可以一起學習一下。

首先來理解一下概念。所謂的表分割槽就是讓使用者能夠把資料分散存放到不同的物理磁碟中,提高這些磁碟的並行處理效能以優化查詢效能。

既然表分割槽能提高這些磁碟的並行處理效能以優化查詢效能,那麼我們就來玩玩。

建立表分割槽三部曲

1. 建立分割槽函式

2. 建立分割槽架構

3. 對錶進行分割槽

步驟一:建立乙個分割槽函式

此分割槽函式用於定義你希望sql server如何對資料進行分割槽的引數值。這個操作並不涉及任何**,只是單純的定義了一項技術來分割資料。

我們可以通過指定每個分割槽的邊界條件來定義分割槽。例如,假定我們有乙份student表,其中包含了關於所有學生的資訊,以一一對應的學生編號(從1到1,000,000)來區分。我們將通過以下的分割槽函式把這個表分為四個大小相同的分割槽: 

create partition function student_partfunc (int)

as range right

for values (250000, 500000, 750000)

這些邊界值定義了四個分割槽。第乙個分割槽包括所有值小於250,000的資料,第二個分割槽包括值在250,000到49,999之間的資料。第三個分割槽包括值在500,000到7499,999之間的資料。所有值大於或等於750,000的資料被歸入第四個分割槽。

請注意,這裡呼叫的"range right"語句表明每個分割槽邊界值是右界。類似的,如果使用"range left"語句,則上述第乙個分割槽應該包括所有值小於或等於250,000的資料,第二個分割槽的資料值在250,001到500,000之間,以此類推。

步驟二:建立乙個分割槽架構

一旦給出描述如何分割資料的分割槽函式,接著就要建立乙個分割槽架構,用來定義分割槽位置。建立過程非常直截了當,只要將分割槽連線到指定的檔案組就行了。例如,如果有四個檔案組,組名從"fg1"到"fg4",那麼以下的分割槽架構就能達到想要的效果:

create partition scheme student_partscheme

as partition student_partfunc

to (fg1, fg2, fg3, fg4)

注意,這裡將乙個分割槽函式連線到了該分割槽架構,但並沒有將分割槽架構連線到任何資料表。這就是可復用性起作用的地方了。無論有多少資料庫表,我們都可以使用該分割槽架構(或僅僅是分割槽函式)。

步驟三:對乙個表進行分割槽

定義好乙個分割槽架構後,就可以著手建立乙個分割槽表了。這是整個分割槽操作過程中最簡單的乙個步驟。只需要在表建立指令中新增乙個"on"語句,用來指定分割槽架構以及應用該架構的表列。因為分割槽架構已經識別了分割槽函式,所以不需要再指定分割槽函式了。

例如,使用以上的分割槽架構建立乙個客戶表,可以呼叫以下的transact-sql指令:

create table students(firstname nvarchar(40), lastname nvarchar(40), studentnumber int)

on student_partscheme (studentnumber) 

這樣表分割槽就完成了,有興趣的朋友可以自己去測試一下,看看經過這樣折騰後,效能是否真的提公升了。^_^

SQL Server 2005 修改表結構

為表新增具有預設值的一列 if not exists select from syscolumns where name website and objectproperty id,isusertable 1 and object name id tbbrowser begin alter tabl...

sql server2005取得表描述

select fldname a.name,priname case when columnproperty a.id,a.name,isidentity 1 then else end,idname case when exists select 1 from sysobjects where x...

sql server 2005中的表分割槽

sql server 2005中,終於引入了表分割槽,就是說,當乙個表裡的資料很多時,可以將其分拆到 多個的表裡,大大提高了效能。下面舉例子說明之 比如,在c盤下建立如下幾個目錄 c data2 primary c data2 fg1 c data2 fg2 c data2 fg3 c data2 ...