SQL Server 2005分區表幾何倍數提高網站性能
作者:云淡風輕
項目做到后期了,發現數據到數據在不斷增長,現在是1000w多條,估計以后數據還會增加,可是現在數據庫到索引也加了,在數據庫做一個大大查詢時,前臺web會超時,很郁悶,怎么辦呢。解決問題還是靠SQL Server 2005的新特性 :表分區功能。
表分區功能,相當于把一張表大數據無限極細化到多張表上,多個驅動上,但是訪問時卻還是一樣的訪問,因為 其實本身并未新建任何表,并且它還可以訪問其他服務器以提高速度
好了,廢話不談了,下面的步驟 依次跟著來:
1.為數據庫新建多個文件組,可分布于不同大磁盤上
- ALTER DATABASE [D]
- ADD FILEGROUP [GF1]
2.一個文件組可放置多個文件,下面,只為一個文件組分配一個文件
- ALTER DATABASE [D] ADD FILE ( NAME = N'GF1', FILENAME = N'E:\D\D1\DGF1.ndf' , SIZE = 5MB , FILEGROWTH = 10% )
- TO FILEGROUP [GF1]
3.創建分區函數
- CREATE PARTITION FUNCTION [D_PARTITIONFUNC] (int)
- AS RANGE LEFT FOR VALUES (200000,400000,500000)
4.將分區函數綁定到分區架構上
- CREATE PARTITION SCHEME [D_PARTITION_SHEME]
- AS PARTITION [D_PARTITIONFUNC]
- TO ([PRIMARY],[GF1],[PRIMARY],[GF1])
注意primary表示主文件組,既是數據庫建立大時候默認的
5.刪除主鍵
- ALTER TABLE dbo.B DROP CONSTRAINT [PK_B]
上一步可以不做,不過我個人推薦,因為分區鍵(分區函數的參數)必須建立在主鍵上
6.開始對表分區
- ALTER TABLE dbo.B add CONSTRAINT [PK_B] PRIMARY KEY CLUSTERED (ID)
- ON [D_PARTITION_SHEME](ID)
OK,完成
B表中主鍵ID,好了
現在即使是幾百G的數據也不會有問題了
【編輯推薦】
責任編輯:彭凡
來源:
cnblogs