DB2 數據庫分區表語法

               前端時間,做某銀行的項目,需要用到分區表,之前從來沒有接觸過,特此去了解了一下。現在完成項目後,做一個總結,也希望能給你們帶來些許幫助。

            首先,分區表和普通表大致上區別不大,僅多了一個分區的字段,以及分區範圍值。

            以下就是我寫的一個分區表的案例:

   CREATE TABLE ESS_TABLE_LOG
   ( SERIALNUM VARCHAR(30) NOT NULL,--流水號
  USERID      VARCHAR(10) NOT NULL,--用戶號
  USERTYPE          VARCHAR(1) NOT NULL,-用戶號類型
  OPERATORNO          VARCHAR(24) NOT NULL,--操作號
  PHONENO       VARCHAR(26) NOT NULL,--手機號
  STATUS       VARCHAR(2),--狀態
  SHIPDATE         DATE) --分區字段
  PARTITION BY RANGE(SHIPDATE)
(STARTING MINVALUE, STARTING '11/1/2016' ENDING '12/31/2030' EVERY 1 MONTH, ENDING MAXVALUE);

(1)分區表的關鍵字PARTITION BY RANGE,這個是固定的語法,後面跟着的是分區字段,以及分區的範圍。

(2)這個分區表是按每月進行分區的,可根據 describe data partitions for table ESS_TABLE_LOG;查詢具體的分區情況。

(3)查詢匹配日期的分區數據:

 select datapartitionnum(SHIPDATE) as PartitionId, SHIPDATE,SERIALNUM ,USERID,USERTYPE,PHONENO from ESS_TABLE_LOG  where SHIPDATE between '11/21/2016' and '11/22/2016' order by SHIPDATE;

該分區表未設置索引,如果當數據量多大的時候,做刪除,性能會比較低,但是銀行根據腳本,批量執行,所有就沒加索引。有興趣的朋友可以再去深入瞭解下db2其他的分區表寫法及索引的添加。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章