分割槽表與普通表之間切換的報錯

2021-09-12 02:44:41 字數 1047 閱讀 8824

將分割槽資料切換至普通表

1.報錯:『alter table switch』 語句失敗。表』db_test.dbo.test_parti』 已分割槽,但 索引』pk_test_parti』 未分割槽。

答:源表或分割槽以及目標表或分割槽必須在同乙個檔案組中。 對應的索引或索引分割槽也必須在同乙個檔案組中。
2.報錯:alter table switch 語句失敗。索引』db_test.dbo.steel_test.clu_steel_test_scheme』 在檔案組』data』 中,而 索引』db_test.dbo.test_parti.clu_test_parti_scheme』 的分割槽 1 在檔案組』test_parti_1』 中。

create clustered index [clu_steel_test_scheme] on [dbo].[steel_test](	[period_date] asc) on [test_parti_1]

--索引要一致:檔案組要一樣

alter table test_parti switch partition 1 to steel_test

將普通資料切換至分割槽表

1.報錯:alter table switch 語句失敗。源表 『db_test.dbo.steel_test』 的檢查約束所允許的值對於目標表 『db_test.dbo.test_parti』 中分割槽 1 定義的範圍是不允許的。

alter table steel_test add constraint ck_steel_test_period_date

check (period_date<='1990-01-01')

普通表必須加上和分割槽資料範圍一致的 check 約束條件。

alter table steel_test switch to test_parti partition 1

將分割槽表切換至分割槽表

兩張表的索引所在的檔案組不一樣,同樣需要保持一致

普通表變為分割槽表

將已存在資料的普通表轉變為分割槽表,沒有辦法通過修改屬性的方式直接轉化為分割槽表,必須通過重建的方式進行轉變,一般可以有三種方法,視不同場景使用 用例 方法一 利用原表重建分割槽表。create table t id number primary key,time date insert into ...

普通大表轉為分割槽表

生產庫環境 oracle版本 11.2.0.3.0 asm 大表資料量為近3千萬,分割槽鍵為日期字段 流程 1.停止中介軟體應用系統 2.利用ctas nologging 並行來處理,這樣速度會提高許多 create table t tab new nologging parallel degree...

將普通表改為分割槽表

oracle的普通表沒有辦法通過修改屬性的方式直接轉化為分割槽表,必須通過重建的方式進行轉變,下面介紹三種效率比較高的方法,並說明它們各自的特點。方法一 利用原表重建分割槽表。步驟 sql create table t id number primary key,time date 表已建立。sql...