關於分割槽索引對齊

2022-02-14 17:22:58 字數 3607 閱讀 8007

一直在群裡聽到大牛們說一定要」分割槽索引對齊「,不然交換分割槽會失敗。

索引要與其基表對齊,並不需要與基表參與相同的命名分割槽函式。但是,索引和基表的分割槽函式在實質上必須相同,

即: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的兩個...