一直在群裡聽到大牛們說一定要」分割槽索引對齊「,不然交換分割槽會失敗。
索引要與其基表對齊,並不需要與基表參與相同的命名分割槽函式。但是,索引和基表的分割槽函式在實質上必須相同,
即:1) 分割槽函式的引數具有相同的資料型別;
2) 分割槽函式定義了相同數目的分割槽;
3) 分割槽函式為分割槽定義了相同的邊界值。
其實這樣有兩種理解:
1) 索引(特指非聚集索引)與表使用同乙個分割槽方案。
2) 索引(特指非聚集索引)與表使用實質上相同的分割槽方案。
關於「實質上相同」的描述,到底哪些可以不同呢?
1)當然分割槽函式,分割槽方案的名字可以不同
2)索引使用的分割槽方案可以使用別的檔案組。(這其實才是使用不一樣名字的分割槽方案和函式真正的用意,使得索引與表所使用的檔案組分開)
注意點: 索引所使用的分割槽字段必須與表所使用的分割槽字段相同。
例如:表分割槽是基於sysdate欄位來分割槽的。 即便你的索引是基於workdate,itemco,stco來建立的,你所使用的分割槽欄位也必須是基於sysdate。
--建立t_sales表
create
table
[dbo
].[t_sales](
[sysdate][
date
]not
null
,
[companyco][
char
](2) not
null
,
[stco][
char
](4) not
null
,
[workdate][
date
]not
null
,
[custype][
char
](2) not
null
,
[itemco][
char
](6) not
null
,
[eanco][
varchar
](18) not
null
,
[divco][
char
](2) null
,
[deptco][
char
](2) null
,
[classco][
char
](3) null
,
[subclassco][
char
](2) null
,
[salesprice][
money
]null
,
[salesprice_nt][
money
]null
,
[salescost][
money
]null
,
[salescost_nt][
money
]null
,
[salescnt][
int]
null
,
[cuscnt][
int]
null
,
[cost][
money
]null
,
[downprice][
money
]null
,
[downcnt][
int]
null
,
[binkbn][
char
](1) null
,
[areaco][
varchar
](2) null
,
[insuser][
varchar
](20) null
,
[insdate][
datetime
]null
,
[upduser][
varchar
](20) null
,
[upddate][
datetime
]null,)
on[sch_sales_sysdate
]([sysdate])
go--
建立聚集索引
alter
table
[dbo
].[t_sales
]add
constraint
[pk_sales_sysdate
]primary
keyclustered
(
[sysdate
]asc
,
[itemco
]asc
,
[stco
]asc
,
[companyco
]asc
,
[workdate
]asc
,
[custype
]asc
) with( pad_index =
on, fillfactor
=100, statistics_norecompute =
off, ignore_dup_key =
off, allow_row_locks =
on, allow_page_locks =on)
on[sch_sales_sysdate
]([sysdate])
go--
建立索引
create
nonclustered
index
[idx_sales_workdate]on
[dbo
].[t_sales](
[workdate
]asc
,
[itemco
]asc
,
[stco
]asc
,
[companyco
]asc
,
[workdate
]asc
,
[custype
]asc
)with (pad_index =
off, statistics_norecompute =
off, sort_in_tempdb =
off, ignore_dup_key =
off, drop_existing =
off, online =
off, allow_row_locks =
on, allow_page_locks =
on) on[
sch_sales_idx_sysdate
]([sysdate])
go
oracle 分割槽和分割槽索引
1 分割槽分類 range分割槽,hash分割槽,list分割槽,復合分割槽,間隔分割槽,system分割槽 2 range分割槽 區域分割槽,就是按照定義的區域進行分割槽 語法 create table partition by range field partition p1 values le...
Oracle分割槽索引
表可以按 range hash list 分割槽,表分割槽後,其上的索引和普通表上的索引有所不同,oracle 對於分割槽表上的索引分為 2類,即區域性索引和全域性索引,下面分別對這 2種索引的特點和侷限性做個總結。1.區域性索引一定是分割槽索引,分割槽鍵等同於表的分割槽鍵,分割槽數等同於表的分割槽...
iOS tableView分割槽 索引
1.建立乙個viewcontroller,new file cocoa touch objective c class class viewcontroller,subclass of uiviewcontroller 2.開啟xib,在view中新增tableview,並將tableview的兩個...