ORACLE 分割槽表分割槽拆分

2021-08-19 20:42:21 字數 1527 閱讀 9036

oracle建立分割槽表,分割槽規則為按照日期進行分割槽,由於投產日期未知,因此建議使用按照當前日期自動建立分割槽。

僅需建立乙個max分割槽,然後通過split進行分割槽拆分,建立一年前的全部分割槽。

示例**如下:

create table wen

(dt decimal(8, 0),

id decimal(12, 0),

name char(4),

ts timestamp (6))

partition by range (dt)

(partition pmax values less than (maxvalue)) tablespace tbs_wen;

建立儲存過程

create or replace procedure crt_partition

as

ibefore integer := 366;

iafter integer := 15;

now integer;

yestoday integer;

v_sql1 varchar2(2000);

begin

for i in 0 .. ibefore loop

select to_number(to_char(sysdate-ibefore+i,'yyyymmdd')) into now from dual;

select to_number(to_char(sysdate-ibefore+i-1,'yyyymmdd')) into yestoday from dual;

v_sql1:='alter table bptfhist split partition pmax at ('||now||') into (partition p'||yestoday||',partition pmax)';

execute immediate v_sql1;

end loop;

for m in 1 .. iafter loop

select to_number(to_char(sysdate+m,'yyyymmdd')) into now from dual;

select to_number(to_char(sysdate+m-1,'yyyymmdd')) into yestoday from dual;

v_sql1:='alter table wen split partition pmax at ('||now||') into (partition p'||yestoday||',partition pmax)';

execute immediate v_sql1;

end loop;

end;

/

投產日期進行執行儲存過程即可

exec crt_partition;
該方式可以無需考慮投產日期進行操作,也同樣減少寫死一年分割槽的工作量。

oracle表分割槽設計 ORACLE 分割槽表的設計

分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存和分析巨量的歷史資料。分割槽表...

oracle表分割槽設計 ORACLE分割槽表的設計

分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存和分析巨量的歷史資料。分割槽表...

oracle表分割槽設計 ORACLE 分割槽表的設計

oracle 分割槽表的設計 分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存...