簡體   English   中英

SQL Server 2012-對現有表進行分區

[英]SQL Server 2012 - Partitioning an exisiting table

我們正在對現有表進行分區。 讓我分享一下背景簡介:

問題背景:此處的指導原則很少: https : //dba.stackexchange.com/questions/48011/how-to-partition-an-existing-non-partitioned-table

它說,

  • 步驟1:首先創建分區功能和分區方案
  • 第2步和第3步不適用於我的情況
  • 步驟4:如果您的表沒有聚集索引,則可以使用分區方案在正確的分區上創建一個索引。

題:

  • 我已經完成了Step1。 在執行步驟4時,必須創建聚簇索引。 如果是這樣, 為什么

  • 我有一個表的datekey列(INT數據類型),其中一個特定的datekey(sample-20150825)會有很多行。 我打算選擇字符“ 201508”作為分區鍵,該月的所有記錄都應在該分區中流動。 這可能繼續嗎? 如果是這樣,請幫助我正確的方向。

非常感謝。 拉克什曼。

我可能會喜歡這樣的東西。 我以為您以升序插入datakey而不返回或對其進行任何更新。 在此示例中,我假設您最早的日期鍵是在2015年1月。

創建一個沒有聚集索引的測試表:

create table dbo.test(id int identity(0, 1) primary key nonclustered, datekey int, data nchar(2000))
go
insert into test(datekey, data) values 
(20150125, ''), (20150120, ''), (20150118, ''), (20150118, ''), (20150118, '')
, (20150205, ''), (20150215, ''), (20150215, ''), (20150215, ''), (20150215, '')
, (20150305, ''), (20150315, '')

創建文件組和文件:

Alter Database [Test] Add Filegroup [Part_201501]
Alter Database [Test] Add Filegroup [Part_201502]
Alter Database [Test] Add Filegroup [Part_201503]
Alter Database [Test] Add FILE ( NAME = N'Part_201501', FILENAME = N'...\Part_201501.ndf' , SIZE = 5120KB , FILEGROWTH = 1024KB ) TO Filegroup [Part_201501]
Alter Database [Test] Add FILE ( NAME = N'Part_201502', FILENAME = N'...\Part_201502.ndf' , SIZE = 5120KB , FILEGROWTH = 1024KB ) TO Filegroup [Part_201502]
Alter Database [Test] Add FILE ( NAME = N'Part_201503', FILENAME = N'...\Part_201503.ndf' , SIZE = 5120KB , FILEGROWTH = 1024KB ) TO Filegroup [Part_201503]

創建從20150201之前的所有內容開始的函數(表示01-2015):

Create Partition Function DateKeyPartFunction (int)
as Range Right For Values (20150201, 20150301)

請注意,我無法按數據鍵的一部分進行分區,例如201501。這就是為什么要在下個月的第一天進行分區的原因。 所有日期鍵> = 20150201和<20150301將成為Part_201502分區的一部分。

創建方案:

Create Partition Scheme DateKeyPartScheme as Partition DateKeyPartFunction
To ([Part_201501], [Part_201502], [Part_201503])

創建聚簇索引:

Create Clustered Index IDX_Part On dbo.Test(datekey) On DateKeyPartScheme(datekey);

如果您具有集群主鍵。 您必須將其替換為非群集PK(+刪除/添加FK)。 這不會更改表格的類型。

到達4月后,只需添加一個新的Part_201504文件組並在20150401上拆分該功能...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM