新聞中心
隨著業(yè)務(wù)的不斷擴大,原始設(shè)計的單表單庫已經(jīng)不能滿足實際業(yè)務(wù)場景,并發(fā)量大的時候數(shù)據(jù)庫I/O已經(jīng)開始排隊了,這時需要著手于數(shù)據(jù)庫優(yōu)化。這樣的業(yè)務(wù)場景單純增加索引已經(jīng)不足夠應(yīng)付業(yè)務(wù)了,這個時候我們就要開始考慮SQL SERVER的表分區(qū)(Partition)了。

專注于為中小企業(yè)提供做網(wǎng)站、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)秦都免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
SQL Server數(shù)據(jù)庫表分區(qū)操作過程由三個步驟組成:
\1. 創(chuàng)建分區(qū)函數(shù)
\2. 創(chuàng)建分區(qū)架構(gòu)
\3. 對表進行分區(qū) 下面將對每個步驟進行詳細介紹。
步驟一:創(chuàng)建一個分區(qū)函數(shù)
此分區(qū)函數(shù)用于定義你希望SQL Server如何對數(shù)據(jù)進行分區(qū)的參數(shù)值([u]how[/u])。這個操作并不涉及任何表格,只是單純的定義了一項技術(shù)來分割數(shù)據(jù)。
我們可以通過指定每個分區(qū)的邊界條件來定義分區(qū)。例如,假定我們有一份Customers表,其中包含了關(guān)于所有客戶的信息,以一一對應(yīng)的客戶編號(從1到1,000,000)來區(qū)分。我們將通過以下的分區(qū)函數(shù)把這個表分為四個大小相同的分區(qū):
CREATE PARTITION FUNCTION customer_partfunc (int)
AS RANGE RIGHT
FOR VALUES (250000, 500000, 750000)
這些邊界值定義了四個分區(qū)。第一個分區(qū)包括所有值小于250,000的數(shù)據(jù),第二個分區(qū)包括值在250,000到49,999之間的數(shù)據(jù)。第三個分區(qū)包括值在500,000到7499,999之間的數(shù)據(jù)。所有值大于或等于750,000的數(shù)據(jù)被歸入第四個分區(qū)。
請注意,這里調(diào)用的”RANGE RIGHT”語句表明每個分區(qū)邊界值是右界。類似的,如果使用”RANGE LEFT”語句,則上述第一個分區(qū)應(yīng)該包括所有值小于或等于250,000的數(shù)據(jù),第二個分區(qū)的數(shù)據(jù)值在250,001到500,000之間,以此類推。
步驟二:創(chuàng)建一個分區(qū)架構(gòu)
一旦給出描述如何分割數(shù)據(jù)的分區(qū)函數(shù),接著就要創(chuàng)建一個分區(qū)架構(gòu),用來定義分區(qū)位置([u]where[/u])。創(chuàng)建過程非常直截了當,只要將分區(qū)連接到指定的文件組就行了。例如,如果有四個文件組,組名從”fg1″到”fg4″,那么以下的分區(qū)架構(gòu)就能達到想要的效果:
CREATE PARTITION SCHEME customer_partscheme
AS PARTITION customer_partfunc
TO (fg1, fg2, fg3, fg4)
注意,這里將一個分區(qū)函數(shù)連接到了該分區(qū)架構(gòu),但并沒有將分區(qū)架構(gòu)連接到任何數(shù)據(jù)表。這就是可復(fù)用性起作用的地方了。無論有多少數(shù)據(jù)庫表,我們都可以使用該分區(qū)架構(gòu)(或僅僅是分區(qū)函數(shù))。
步驟三:對一個表進行分區(qū)
定義好一個分區(qū)架構(gòu)后,就可以著手創(chuàng)建一個分區(qū)表了。這是整個分區(qū)操作過程中最簡單的一個步驟。只需要在表創(chuàng)建指令中添加一個”O(jiān)N”語句,用來指定分區(qū)架構(gòu)以及應(yīng)用該架構(gòu)的表列。因為分區(qū)架構(gòu)已經(jīng)識別了分區(qū)函數(shù),所以不需要再指定分區(qū)函數(shù)了。 例如,使用以上的分區(qū)架構(gòu)創(chuàng)建一個客戶表,可以調(diào)用以下的Transact-SQL指令:
CREATE TABLE customers (FirstName nvarchar(40), LastName nvarchar(40), CustomerNumber int)
ON customer_partscheme (CustomerNumber)
關(guān)于SQL Server的表分區(qū)功能,你知道上述的相關(guān)知識就足夠了。記住!編寫能夠用于多個表的一般的分區(qū)函數(shù)和分區(qū)架構(gòu)就能夠大大提高可復(fù)用性。
分享名稱:講解一下SQLSERVER的表分區(qū)(Partition)
分享地址:http://www.dlmjj.cn/article/dhgjecg.html


咨詢
建站咨詢
