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語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存...