將分割槽表中的某乙個分割槽拆分成兩個分割槽 2008-08-14 14:47:17
分類: linux
我的庫中有乙個分割槽表,如下
create table scott.par_test
(id number,
time date
)partition by range (time)
( partition p_080813 values less than (to_date(' 2008-08-14 00:00:00', 'syyyy-mm-dd hh24:mi:ss')),
partition p_080814 values less than (to_date(' 2008-08-15 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
)每乙個分割槽存放當天的資料,然後在每天的23點,去建立第二天的分割槽。建立分割槽的語句如下
declare
sqlstring varchar2(1000);
begin
sqlstring:='alter table par_test add partition p_'||to_char(date_now+1,'yymmdd')||' values less than (to_date('''||to_char(date_now+2,'yyyy-mm-dd')||' 00:00:00'',''syyyy-mm-dd hh24:mi:ss''))';
execute immediate sqlstring;
end;
/由於系統時間的問題,p_080815沒有建立,而直接建立了p_080816,並且已經有大量15號的資料入庫。
現在想補建15號的分割槽。可是不能直接用
alter table par_test add partition p_080815 valuse less than (to_date(to_date(' 2008-08-16 00:00:00', 'syyyy-mm-dd hh24:mi:ss')))
來執行,因為分割槽的時間範圍有了衝突。 所以利用 split partition 方法將p_080816分割槽分割成兩個分割槽。方法如下
alter table par_test split partition p_080816
at (to_date(' 2008-08-15 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
into (partition p_080815,partition p_080816);
at 只能用在range型別的分割槽,()中的值表示第乙個分割槽的upper value。
如果是list型別的分割槽,用values 關鍵字()中指定新的第乙個分割槽的值。語法圖如下
注:乙個分割槽一次性只能分成兩個分割槽。
ORACLE 分割槽表分割槽拆分
oracle建立分割槽表,分割槽規則為按照日期進行分割槽,由於投產日期未知,因此建議使用按照當前日期自動建立分割槽。僅需建立乙個max分割槽,然後通過split進行分割槽拆分,建立一年前的全部分割槽。示例 如下 create table wen dt decimal 8,0 id decimal 1...
資料庫水平拆分和垂直拆分區別
size medium size x small color blue 資料庫水平拆分和垂直拆分區別 案例 簡單購物系統暫設涉及如下表 1.產品表 資料量10w,穩定 2.訂單表 資料量200w,且有增長趨勢 3.使用者表 資料量100w,且有增長趨勢 以mysql為例講述下水平拆分和垂直拆分,my...
資料庫水平拆分和垂直拆分區別
案例 簡單購物 系統暫設涉及如下表 1.產品表 資料量10w,穩定 2.訂單表 資料量200w,且有增長趨勢 3.使用者表 資料量100w,且有增長趨勢 以mysql為例講述下水平拆分和垂直拆分,mysql能容忍的數量級在百萬靜態資料可以到千萬 垂直拆分 解決問題 表與表之間的io競爭 不解決問題 ...