MSSQL2005分割槽表設計步驟

2021-06-02 14:49:36 字數 2682 閱讀 4845

**:

在microsoft sqlserver 2005企業版中提供了分割槽表的功能。分割槽表是指按照資料水平方式分割槽,將資料分布於乙個資料庫的多個不同的檔案組中。

mssql2005的表分割槽功能是針對超大型資料庫(從百gb級和tb級)而設計的。通過採取分割槽技術,對於資料子集的執行的維護操作只是針對所需資料表而不是整個表,因此可以高效的管理和訪問大型表的資料子集。超大型資料庫的查詢效能通過分割槽表得到了改改善。

分割槽前考慮的問題

1.雖然分割槽可以帶來眾多的好處,但是同進也增加了實現物件的管理費用和複雜性。因此在進行分割槽之前要首先仔細的考慮以確定是否應為物件進行分割槽。

2.在確定了為物件進行分割槽後,下一步就要確定分割槽鍵和分割槽數。要確定分割槽資料,應先評估您的資料中是否存在邏輯分組和模式。

3.確定是否應使用多個檔案分組。為了有助於優化效能和維護,應使用檔案組分離資料。檔案組是資料庫資料檔案的邏輯組合,它可以對資料檔案進行管理和分配,以便提高資料庫檔案的併發訪問效率。

進行分割槽表設計的步驟

1.建立檔案組和庫檔案:(以adventureworks資料庫為例)

建立檔案組:alter database adventureworks add filegroup[2009q1]

將檔案新增到檔案組: alter database adventureworks

add file

(name=n'2009q1',

filename=n'c:/adventureworks/2009q1.ndf',

size=5mb,

maxsize=100mb,

filegrowth=5mb)

to filegroup [2009q1]

2.建立分割槽函式,指定如何進行分割槽:(以範圍分割槽為例)

create partition function orderdaterangepfn(datetime)

asrange left fo values('20090331 23:59:59.997',

'20090630 23:59:59.997',

'20090931 23:59:59.997',

'200901231 23:59:59.997')

create partition scheme orderdatepscheme

aspartition orderdaterangepfn

to ([2009q1],[2009q2],[2009q3],[2009q4],[primary])

4.建立分割槽表:建立完分割槽函式(邏輯結構)和分割槽架構(物理結構)後,即可建立表來利用它們了。

create table [dbo].[ordersrange]

([purchaseorderid] [int] not null,

[employeeid] [int] null,

[vendorid] [int] null,

[taxamt] [money] null,

[freight] [money] null,

[subtotal] [money] null,

[status] [tinyint] not null ,

[revisionnumber] [tinyint] null ,

[modifieddate] [datetime] null ,

[shipmethodid] [tinyint] null,

[shipdate] [datetime] not null,

[orderdate] [datetime] not null

constraint ordersrangeyear

check ([orderdate] >= '20030701'

and [orderdate] <= '20040630 11:59:59.997'),

[totaldue] [money] null

) on orderdatepscheme (orderdate)

go5.建立分割槽索引:

索引對於提高查詢效能非常有效,因此,一般應該考慮應該考慮為分割槽表建立索引,為分割槽表建立索引與為普通表建立索引的語法一直,但是,其行為與普通索引有所差異。

預設情況下,分割槽表中建立的索引使用與分割槽表相同分割槽架構和分割槽列,這樣,索引將於表對齊。將表與其索引對齊,可以使管理工作更容易進行,對於滑動視窗方案尤其如此。若要啟動分割槽切換,表的所有索引都必須對齊。

當然也可以在建立索引時,指定不同的分割槽方案(schema)或單獨的檔案組(filegroup)來儲存索引,這樣sql server 不會將索引與表對齊。

注意:在已分割槽的表上建立索引(分割槽索引)時,應該注意以下事項:

唯一索引:建立唯一索引(聚集或者非聚集)時,分割槽列必須出現在索引列中。此限制將使sql server只調查單個分割槽,並確保表中 寵物的新鍵值。如果分割槽依據列不可能包含在唯一鍵中,則必須使用dml觸發器,而不是強制實現唯一性。

非唯一索引:對非唯一的聚集索引進行分割槽時,如果未在聚集鍵中明確指定分割槽依據列,預設情況下sql server 將在聚集索引列中新增分割槽依據列。

對非唯一的非聚集索引進行分割槽時,預設情況下sql server 將分割槽依據列新增為索引的包含性列,以確保索引與基表對齊,若果索引中已經存在分割槽依據列,sql server 將不會像索引中新增分割槽依據列。

MSSQL2008分割槽表

概念就不多說了,網上大把.分割槽函式的作用是告訴sql server,如何將資料進行分割槽,例如按時間,按年齡,按省.而分割槽方案的作用則是告訴sql server,將已分割槽的資料放在哪個檔案組中.多個硬碟上分開選擇的檔案組更好.一,用語句 建立,分割槽方案 create partition sc...

SQL SERVER2005分割槽表建立SQL

建立分割槽表之前,請在新建資料前新增資料庫檔案和檔案組 檔案組數 分割槽數 建立分割槽函式 有三個範圍會產生四個分割槽 create partition function fiveyeardaterangepfn datetime asrange left for values 20061031 2...

SQL Server 2005 分割槽表建立例項

建立乙個分割槽函式 預設為左邊界 create partition function partfunc1 int as range for values 1000,2000,3000,4000,5000 建立乙個分割槽方案 create partition scheme partscheme1 as...