最近剛好在處理複寫建置 |
---|
Snapshot 初始化好像不會主動把表原分割的定義帶到訂閱端 |
剛好我就拿訂閱端來做測試 |
進行未分割表轉換為分割表的測試 |
我手上是有兩個情境 |
primary key是非叢集或叢集 |
對叢集PK表格 |
重建PK直接帶入partition scheme就OK了 |
而且重建的字眼是用CREATE |
我那時候看到都傻眼了 |
想說我一定要來測看看 |
只是CREATE 一定得帶上DROP_EXISTING |
底下這是我的語法 |
CREATE UNIQUE CLUSTERED INDEX PK_DEL_STAT ON [dbo].[DEL_STAT] ( |
[BILL] ASC, |
[SEQ] ASC, |
[STATUS] ASC, |
[EMP] ASC, |
[CREATE_DATE] ASC ) |
WITH (DROP_EXISTING = ON) |
ON [PS_DS]([BILL]); |
PS_DS 當然就是Partition Scheme |
BILL是分割欄位 |
2.非叢集PK 表格 |
---|
這就比較麻煩了 |
他需要三個步驟 |
a. 如同PK叢集一樣 |
先建出clustered pk 分割表 |
其實clustered pk本身就是表格 |
指定他套用分割,他就是分割表格 |
b. drop pk contraint |
這就是把clutered 分割表轉為heap 分割表 |
c. 依partition scheme 建出uniqe key 非叢集index 分割 |
這是為了要Align 資料表的分割 |
指令步驟如下 : |
a. 建出clustered pk 分割表 |
CREATE UNIQUE CLUSTERED INDEX PK_DEL_STAT ON [dbo].[DEL_STAT] ( |
[BILL] ASC, |
[SEQ] ASC, |
[STATUS] ASC, |
[EMP] ASC, |
[CREATE_DATE] ASC ) |
WITH (DROP_EXISTING = ON) |
ON [PS_DS]([BILL]); |
b.drop pk contraint |
ALTER TABLE [dbo].[DEL_STAT] DROP CONSTRAINT PK_DEL_STAT |
go |
c.Align 索引與資料表的分割 |
CREATE UNIQUE NONCLUSTERED INDEX PK_DEL_STAT ON [dbo].[DEL_STAT] ( |
[BILL] ASC, |
[SEQ] ASC, |
[STATUS] ASC, |
[EMP] ASC, |
[CREATE_DATE] ASC ) |
WITH (DROP_EXISTING = ON) |
ON [PS_DS]([BILL]); |