oracke資料庫分割槽新增

2022-08-29 00:03:19 字數 1733 閱讀 2529

1、發現一些過程執行報錯,報錯原因是『ora-14400插入的分割槽關鍵字未對映到任何分割槽』,原來是2023年庫表的時間子分割槽未擴充套件;

2、擴充套件子分割槽的語句是

alter

table 表名 modify partition 分割槽名 add subpartition 子分割槽名 values (分割槽字段值) tablespace 表空間名;

3、批量擴充套件子分割槽,執行以下語句可自動生成擴充套件指令碼:

select

distinct 'alter table ' || a.table_name || 'modify partition ' ||

a.partition_name || 'add subpartition ' ||

replace(a.subpartition_name, '2019', '2020') || 'values (' ||

replace(replace(a.subpartition_name,

a.partition_name || '_m',

''),

'2019',

'2020') || ') tablespace ' || a.tablespace_name || ';' sql

from user_tab_subpartitions a

where a.subpartition_name like '%2019%'

and a.table_name not

like 'bin$%'

andexists (select 1

from user_part_tables b

where b.table_name = a.table_name

and b.subpartitioning_type = 'list')

order

bysql;

select

distinct 'alter table ' || a.table_name || 'modify partition ' ||

a.partition_name || 'add subpartition ' ||

replace(a.subpartition_name, '2019', '2020') ||

'values less than (to_date(''' ||

to_char(add_months(to_date(replace(replace(a.subpartition_name,

a.partition_name || '_m',

''),

'2019',

'2020'),

'yyyymm'),

1),'yyyy-mm-dd') || ''',''yyyy-mm-dd'')) tablespace ' ||

a.tablespace_name || ';' sql

from user_tab_subpartitions a

where a.subpartition_name like '%2019%'

and a.table_name not

like 'bin$%'

andexists (select 1

from user_part_tables b

where b.table_name = a.table_name

and b.subpartitioning_type = 'range')

order

bysql;

資料庫分割槽

分割槽 就是把一張表的資料分成n個區塊 資料分割槽是一種物理資料庫的設計技術,它的目的是為了在特定的sql操作中減少資料讀寫的總量以縮減響應時間。分割槽並不是生成新的資料表,而是將表的資料均衡分攤到不同的硬碟,系統或是不同伺服器儲存介子中,實際上還是一張表。特性 分割槽能夠提高併發性和並行性 從而增...

資料庫分割槽

分割槽就是把乙個資料表的檔案和索引分散儲存在不同的物理檔案中。建立乙個user 表 以id進行分割槽 id 小於10的在user 1分割槽id小於20的在user 2分割槽 create table user id int not null auto increment,username varch...

資料庫表分割槽

create database mytest on sql server 資料庫表分割槽由三個步驟來完成 1.建立分割槽函式 2.建立分割槽架構 3.對錶進行分割槽 1.0建立表分割槽函式 create partition function mypartfunc int as range right...