青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

分布式 DBA: 創建和使用分區表

Posted on 2012-03-05 23:47 Prayer 閱讀(792) 評論(0)  編輯 收藏 引用 所屬分類: DB2
http://doc.chinaunix.net/db2/201009/893927.shtml

表分區是一種數據組織方案,它根據一列或多列中的值把表數據劃分為多個稱為數據分區 的存儲對象。分區的表能夠包含的數據比普通的表多得多;另外,通過利用稱為分區消除 的過程,針對分區表運行的查詢通常比針對非分區表運行時執行速度更快,需要的磁盤 I/O 更少。(DB2 優化器能夠感知分區,在執行查詢時只掃描相關的數據分區。)

  在這篇專欄文章中,我將討論如何創建分區表,解釋分區表的定義如何決定各個記錄的存儲位置。

  范圍分區表

  數據分區也稱為范圍(當前 DB2 只支持范圍分區方案),一個數據分區包含一個行子集,這些行存儲在與表中其他行集不同的地方。不同的數據分區可以駐留在不同的表空間中,也可以駐留在相同的表空間中。CREATE TABLE 語句的 PARTITION BY 子句中提供的信息決定表數據的分區方式。這個可選子句的語法取決于是希望讓 DB2 在指定的表數據范圍內均勻地生成每個分區范圍,還是要手工控制每個范圍的邊界。對于給定的表數據范圍自動生成分區的語法是:

PARTITION BY <RANGE> 
 ([ColumnName] <NULLS LAST | NULLS FIRST> ,...) 
 ( 
 STARTING <FROM> [Start | MINVALUE | MAXVALUE] | 
  STARTING <FROM> ([Start | MINVALUE | MAXVALUE] ,...) 
 <INCLUSIVE | EXCLUSIVE> 
 ENDING <AT> [End | MINVALUE | MAXVALUE] | 
  ENDING <AT> ([End | MINVALUE | MAXVALUE] ,...) 
 <INCLUSIVE | EXCLUSIVE> 
 EVERY <(>[Constant] <DurationLabel> <)> 
 ,...) 

  手工指定分區的語法是:

PARTITION BY <RANGE>  
  ([ColumnName] <NULLS LAST | NULLS FIRST> ,...) 
  ( 
  <PARTITION [PartitionName]> 
 STARTING <FROM> [Start | MINVALUE | MAXVALUE] | 
  STARTING <FROM> ([Start | MINVALUE | MAXVALUE] ,...) 
 <INCLUSIVE | EXCLUSIVE> 
 ENDING <AT> [End | MINVALUE | MAXVALUE] | 
  ENDING <AT> ([End | MINVALUE | MAXVALUE] ,...) 
 <INCLUSIVE | EXCLUSIVE> 
  <IN [TSName]> 
  <INDEX IN [IndexTSName]> 
  <LONG IN [LongTSName]> 

  其中:

  ColumnName:用名稱指定一個或多個列(最多 16 列),這些列的值用來決定數據行應該存儲在哪個數據分區中。(指定的列組成表的分區鍵 — 參見邊欄 “選擇表分區鍵”。)數據類型為 LONG VARCHAR、LONG VARGRAPHIC、BLOB、CLOB、DBCLOB、XML、基于這些數據類型的 distinct 類型和結構化數據類型的列都不能作為數據分區鍵的組成部分。

  PartitionName:指定分配給要創建的數據分區的惟一名稱。

  Start:指定每個數據分區的范圍下限。

  End:指定每個數據分區的范圍上限。

  Constant:在使用語法的自動生成形式時,指定每個數據分區范圍的寬度。從 STARTING FROM 值開始創建數據分區,數據分區的范圍內包含指定數量的值。支持這種語法的條件是分區鍵由單一列組成,這一列的數據類型是數字、日期、時間或時間戳。

  DurationLabel:如果分區鍵列的數據類型是日期、時間或時間戳,這個參數指定與 Constant 值相關的時間單位。這個參數的有效值是:YEAR、YEARS、MONTH、MONTHS、DAY、DAYS、HOUR、HOURS、MINUTE、MINUTES、SECOND、SECONDS、MICROSECOND 和 MICROSECONDS。

  TSName:指定存儲每個數據分區的表空間。

  IndexTSName:指定存儲每個數據分區的分區索引的表空間。

  LongTSName:指定存儲長列的值的表空間。

  注意:尖括號 (< >) 中的參數是可選的;方括號 ([ ]) 中的參數或選項是必需的,必須提供它們;逗號后面跟著省略號 (...) 表示前面的參數可以重復出現多次。

  因此,如果希望創建一個名為 SALES 的分區表,把每個季度的數據存儲在單獨的分區中,每個分區駐留在不同的表空間中,那么可以執行以下 CREATE TABLE 語句:

CREATE TABLE sales 
 (sales_date  DATE, 
 sales_amt   NUMERIC(5,2)) 
 IN tbsp0, tbsp1, tbsp2, tbsp3 
 PARTITION BY RANGE (sales_date) 
  (STARTING '1/1/2010' ENDING '12/31/2010' 
  EVERY 3 MONTHS) 

  圖 1 說明生成的表是什么樣的。

圖 1. 一個簡單分區表中存儲的數據
分布式 DBA: 創建和使用分區表

  另一方面,如果希望創建一個名為 INVENTORY 的分區表,把物品編號在 1 到 100 之間的行存儲在一個表空間中的一個分區中,把編號在 101 到 200 之間的行存儲在另一個表空間中的另一個分區中,以此類推,那么可以執行下面的 SQL 語句:

CREATE TABLE inventory 
  (item_no INT, 
  desc VARCHAR(20)) 
PARTITION BY (item_no NULLS FIRST) 
(PARTITION PRODUCE STARTING MINVALUE ENDING 100 IN tbsp0, 
PARTITION DAIRY  STARTING    101 ENDING 200 IN tbsp1, 
PARTITION BAKERY  STARTING    201 ENDING 300 IN tbsp2, 
PARTITION MEAT   STARTING    301 ENDING 400 IN tbsp3) 

  選擇表分區鍵

  選擇有效的表分區鍵列對于發揮表分區的優勢非常重要。最有效的表分區鍵列是有利于分區消除的列。例如,如果通常按日期查詢表中的記錄,那么應該用日期或時間列進行表分區。

  同樣,如果希望隨著時間的推移把表數據的一部分刪除或存檔,應該根據期望的記錄存檔方式進行表分區。例如,如果希望把三年前的所有數據都存檔,應該按周、月或季度進行表分區,這樣就可以分別在每周、每月或每季度末刪除一個老分區。

  對于這個示例,ITEM_NO 值在 1 到 100 之間的行將存儲在名為 PRODUCE 的分區中(這個分區的數據寫到表空間 TBSP0 中),ITEM_NO 值在 101 到 200 之間的行將存儲在名為 DAIRY 的分區中(這個分區的數據寫到表空間 TBSP1 中),依次類推;ITEM_NO 值為 NULL 的行將存儲在 PRODUCE 分區中。

  一定要注意,當指定 NULLS FIRST 選項時,第一個分區必須從 MINVALUE 開始。(同樣,如果使用 NULLS LAST 選項,最后一個分區必須結束于 MAXVALUE。)否則,在插入分區鍵列為 NULL 值的記錄時,會產生 “data out of bounds” 錯誤。另外,每個分區的數據、索引和長列數據可以放在不同的表空間中。如果不為索引或長列指定表空間,分區索引和長列數據會存儲在與數據相同的表空間中。

 

  在默認情況下,范圍包含邊界本身。要想防止在某一分區中存儲特定的記錄,可以用 EXCLUSIVE 選項創建范圍。例如:

CREATE TABLE sales 
 (sales_date DATE, 
 sales_amt NUMERIC(5,2)) 
IN tbsp0, tbsp1, tbsp2, tbsp3 
PARTITION BY RANGE (sales_date) 
(STARTING '1/1/2010' ENDING '3/31/2010' EXCLUSIVE,  
STARTING '3/31/2010' ENDING '6/30/2010' EXCLUSIVE,  
STARTING '6/30/2010' ENDING '9/30/2010' EXCLUSIVE,  
STARTING '9/30/2010' ENDING '12/31/2010') 

  在這個示例中,銷售日期為 3/31/2010 的記錄不會存儲在表空間 TBSP0 中,而是存儲在表空間 TBSP1 中。

  當在分區表中插入行時,會根據鍵值及其所處的范圍自動地把它放到適當的數據分區中。如果鍵值不處于表的任何范圍內,插入操作就會失敗并產生一個錯誤。

  輕松地移入和移出數據

  使用分區表的另一個優點是,可以輕松地在表中添加新數據(作為新的數據分區),同時可以輕松地刪除并存檔老數據。在下一篇專欄文章中,我將講解添加(移入)和刪除(移出)數據分區的過程。還要討論 DB2 9.7 中的改進如何大大加快移入和移出數據分區的速度,減少這些操作產生的干擾。

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久久噜噜噜久久久精品| 精品成人一区二区| 一区视频在线播放| 国产精品电影观看| 国产精品福利在线| 欧美日韩在线一二三| 欧美精品九九99久久| 欧美理论在线| 国产精品久久久久99| 国产视频精品va久久久久久| 黄网动漫久久久| 亚洲国产精品美女| 99成人精品| 亚洲欧美日韩国产一区| 久久精品亚洲一区| 欧美成人一品| 一本综合久久| 欧美在线视频免费观看| 可以免费看不卡的av网站| 欧美成人免费播放| 国产精品免费电影| 亚洲第一福利社区| 一区二区三区成人精品| 欧美在线精品免播放器视频| 欧美成人蜜桃| 99re视频这里只有精品| 亚洲欧美日韩成人高清在线一区| 久久国产一区二区| 欧美日韩一区二区在线| 好吊色欧美一区二区三区四区| 99在线观看免费视频精品观看| 亚洲主播在线播放| 欧美成人按摩| 亚洲欧美日本在线| 欧美日韩精品不卡| 在线观看日韩av| 亚洲欧美日韩中文播放| 欧美va天堂va视频va在线| 亚洲一区二区成人在线观看| 久久综合久久综合九色| 国产美女精品人人做人人爽| 99爱精品视频| 亚洲国产精品毛片| 亚洲精品乱码久久久久久黑人| 欧美在线观看网址综合| 欧美色道久久88综合亚洲精品| 91久久香蕉国产日韩欧美9色| 久久久久高清| 欧美一区=区| 国产色婷婷国产综合在线理论片a| 在线亚洲免费| 国产一区导航| 亚洲视频一二区| 欧美风情在线观看| 久久国产福利国产秒拍| 国产精品久久久久久av福利软件 | 久久久久国产一区二区| 国产精品多人| 亚洲视频在线播放| 亚洲国产日韩一级| 久久综合网络一区二区| 韩国一区二区三区在线观看| 久久国产精品黑丝| 亚洲一区区二区| 欧美日韩中文字幕在线| 夜夜精品视频一区二区| 日韩视频中午一区| 欧美一区成人| 欧美激情按摩在线| 亚洲黄色免费| 亚洲成在人线av| 欧美成人一区二区| 亚洲精品综合| 一本色道久久加勒比精品| 欧美噜噜久久久xxx| 亚洲裸体俱乐部裸体舞表演av| 亚洲国产精品成人综合| 欧美成人精品在线| 中文久久精品| 性做久久久久久| 在线观看91久久久久久| 亚洲国产精品久久人人爱蜜臀| 欧美国产日韩一区二区三区| 一区二区三区久久精品| 亚洲免费一区二区| 怡红院精品视频| 亚洲精品免费在线观看| 国产精品成人一区二区艾草| 久久国产毛片| 欧美大香线蕉线伊人久久国产精品| 日韩一区二区免费高清| 亚洲网站视频福利| 有坂深雪在线一区| 亚洲人精品午夜| 国产欧美va欧美不卡在线| 久久网站热最新地址| 欧美国产日韩一二三区| 欧美在线观看www| 欧美va亚洲va国产综合| 亚洲一区尤物| 久久综合给合| 午夜精品久久久久久久白皮肤 | 久久躁狠狠躁夜夜爽| 免费成人黄色av| 先锋影院在线亚洲| 欧美成年网站| 久久久国产精彩视频美女艺术照福利 | 午夜在线视频观看日韩17c| 香蕉久久夜色精品国产使用方法| 欧美一级片久久久久久久| 亚洲黄色在线观看| 亚洲在线观看免费| 亚洲精品一区二区三区av| 亚洲在线不卡| 一区二区三区欧美亚洲| 久久尤物电影视频在线观看| 亚洲欧美资源在线| 欧美日本中文字幕| 欧美高清在线一区| 国产字幕视频一区二区| 亚洲精品影院在线观看| 亚洲国产99| 久久久精品一品道一区| 午夜精品免费在线| 欧美日韩中文字幕综合视频| 亚洲欧洲精品一区二区三区 | 亚洲视频碰碰| 欧美成人蜜桃| 亚洲电影成人| 亚洲电影视频在线| 久久久久99| 卡一卡二国产精品| 国产自产女人91一区在线观看| 亚洲女人天堂成人av在线| 制服丝袜亚洲播放| 欧美日韩黄色大片| 亚洲毛片在线看| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 久久久99久久精品女同性| 久久国产一区| 国产一区999| 久久久精品日韩| 久久久国际精品| 国产在线精品成人一区二区三区| 香港久久久电影| 久久午夜精品| 亚洲国产一区二区精品专区| 免费黄网站欧美| 亚洲精品孕妇| 欧美一区二区三区免费观看| 国产手机视频一区二区| 久久精品动漫| 亚洲韩国一区二区三区| 一区二区激情| 国产精品久久久久久久免费软件 | 亚洲一区二区高清| 国产精品美女久久久久久免费| 亚洲午夜激情网页| 久久精品国产2020观看福利| 精品二区视频| 欧美激情精品| 国产伊人精品| 亚洲欧美日韩在线观看a三区| av成人激情| 亚洲一区免费网站| 国产欧美精品日韩精品| 久久精品观看| 日韩视频国产视频| 久久精品1区| 亚洲日本国产| 国产精品毛片a∨一区二区三区| 欧美一区视频| 亚洲电影在线观看| 午夜久久美女| 亚洲日本中文字幕免费在线不卡| 欧美性猛片xxxx免费看久爱| 久久av一区| 洋洋av久久久久久久一区| 久久久中精品2020中文| 亚洲精品一区二区在线观看| 国产精品少妇自拍| 欧美mv日韩mv国产网站| 午夜在线不卡| 日韩网站免费观看| 免费高清在线一区| 亚洲伊人色欲综合网| 最新日韩精品| 国模一区二区三区| 国产精品久久久久久久久免费| 美女视频黄a大片欧美| 国产精品99久久久久久人| 欧美va亚洲va日韩∨a综合色| 午夜一级久久| 中文久久乱码一区二区| 亚洲欧洲精品成人久久奇米网| 国产一区在线免费观看| 国产精品性做久久久久久| 欧美日韩亚洲一区二区三区在线 | 久久综合中文字幕| 性欧美精品高清|