欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)庫表分區(qū)的方法

文檔序號:6609718閱讀:240來源:國知局
專利名稱:一種數(shù)據(jù)庫表分區(qū)的方法
技術領域
本發(fā)明涉及使用數(shù)據(jù)庫(Database)作為數(shù)據(jù)存儲介質的軟件開發(fā)領 i或,例^口 Sybase, oracle, mssql等等。
背景技術
數(shù)據(jù)查詢在大型關系型數(shù)據(jù)庫應用系統(tǒng)中都是基礎功能,比如電信網(wǎng) 絡管理系統(tǒng)中的歷史告警查詢。當數(shù)據(jù)量非常大時,執(zhí)行效率就成為數(shù)據(jù) 查詢的關鍵要素。有很多的方法可用來提高查詢效率,表分區(qū)就是其中之 一。它從數(shù)據(jù)的存儲組織著手,將不同特點的記錄分片存放,每個分片有 明確的特征,可在很大程度上縮小查詢操作需要進行的掃描工作量?,F(xiàn)有的數(shù)據(jù)庫管理系統(tǒng)DBMS (如Sybase、 oracle和Microsoft SQL Server)都提供以下三種典型分區(qū)方案1、 hash分區(qū)1) 選擇表的某個字段用以計算hash值;2) 針對該字段定義hash分區(qū);3) 按記錄的選定字段hash計算術出值,存放到對應分區(qū);4 )每個分區(qū)對應不同的hash輸出值,所有hash值相同的記錄,存放 到同一個分區(qū);2、 list分區(qū)1) 選擇表的某個字段用以分區(qū);2) 按這些字段可能的不同取值列出,預先劃分為若干分區(qū),每個分 區(qū)對應一個取值集合,集合相互不重合;3) 將記錄的選定字段與分區(qū)進行對比,存放到值相等的分區(qū); 3、 Range分區(qū)1) 選擇表的某個字段用以分區(qū);2) 按這些字段可能的不同取值范圍,預先劃分為若干分區(qū),每個分 區(qū)對應一個可能的區(qū)間;3) 將記錄的選定字段與分區(qū)進行對比,存放到值所落入?yún)^(qū)間對應的 分區(qū);以上3種典型的分區(qū)方式,都對提高數(shù)據(jù)查詢效率有良好作用。但實 際應用中,也都同時暴露出明顯的缺點1) 對于hash分區(qū),不需要預設選定字段的取值,所以不會產(chǎn)生目前 面兩種分區(qū)方式的問題。但是由于記錄的存放位置由DBMS內含的hash 算法決定,所以我們無法按特定應用的特點,自行指定某條具體的記錄在 那個分區(qū)。2) 對于list分區(qū),由于定義分區(qū)的時候需要枚舉選定字段所有的可 能取值,而并不是所有字段都可以做到這點,因此限制了適用面。3) 對于range分區(qū),如果記錄的選定字段值的分布處于一個不斷變 化的狀態(tài),可能定義分區(qū)時預先指定的取值區(qū)間,在一段時間后會因這種 變化而失去了使記錄均勻分布的功效。正是由于以上缺點,使得傳統(tǒng)分區(qū)在電信網(wǎng)管軟件中的應用受到了很 大限制。發(fā)明內容本發(fā)明所解決的技術問題在于提供一種數(shù)據(jù)庫表分區(qū)的方法,以解決 現(xiàn)有的不同的分區(qū)方法無法按特定應用的特點,以及由于定義分區(qū)時預先 指定的取值區(qū)間,在一段時間后會因這種變化而失去了使記錄均勻分布的 功效等問題。為了解決上述問題,本發(fā)明提供了一種數(shù)據(jù)庫表分區(qū)的方法,其特征 在于,包括以下步驟
(1) 預先確定所需要的分區(qū)參數(shù),指定表的某個字段,并執(zhí)行計算得到該字段的輸出值;(2) 為表增加一個字段,并存放步驟(1)所選字段經(jīng)過計算后的輸出值;(3 )根據(jù)步驟(1)的輸出值對表劃分為若干分區(qū),將記錄的選定字 段根據(jù)步驟(1)計算輸出值,與所述若干分區(qū)進行對比,存放到對應的 分區(qū)中。本發(fā)明所述的方法,其中,所述數(shù)據(jù)庫表分區(qū)為基于計算列的list分區(qū)。其中,步驟(l)中所述執(zhí)行計算,包括(111) 將步驟(1)所指定表的某個字段的值轉換為整數(shù)型數(shù)據(jù);(112) 根據(jù)預先確定所需要的分區(qū)參數(shù)中的個數(shù);(113 )對步驟(111)轉換而得的數(shù)據(jù)執(zhí)行輸出值=數(shù)據(jù)%分區(qū)個數(shù)+1。其中,步驟(3)包括(311) 列出步驟(1)中指定字段經(jīng)計算后的輸出值,劃分為若干分 區(qū),每個分區(qū)對應一個輸出值集合,集合相互不重合;(312) 將記錄的選定字l爻根據(jù)步驟(1 )計算輸出值與分區(qū)進行對比, 存放到值相等的分區(qū)。本發(fā)明所述的方法,其中,所述數(shù)據(jù)庫表分區(qū)為基于計算列的range 分區(qū)。其中,步驟(l)中所述執(zhí)行計算,包括(121) 將步驟(1)所指定表的某個字段的值轉換為整數(shù)型數(shù)據(jù);(122) 根據(jù)預先確定所需要的分區(qū)參數(shù)中的區(qū)間大小,每個區(qū)間的 大小相等;(123 )對步驟(121 )轉換而得的數(shù)據(jù)執(zhí)行輸出值范圍=數(shù)據(jù)%分 區(qū)區(qū)間大小。其中,步驟(3)包括(321) 列出步驟(1)中指定字段經(jīng)計算后的輸出值范圍,劃分為若 干分區(qū),每個分區(qū)對應一個輸出值范圍;(322) 將記錄的選定字段根據(jù)步驟(1 )計算輸出值范圍與分區(qū)進行 對比,存放到輸出值范圍所落入的對應的分區(qū)。本發(fā)明提供一種改進后的數(shù)據(jù)庫表分區(qū)方法,既保持現(xiàn)有分區(qū)方式 "使所有記錄均勻分布"的核心優(yōu)點,又充分提高分區(qū)的自主性、靈活性、適應性。圖1是本發(fā)明實施例所述的基于計算列的分區(qū)方法示意圖。
具體實施方式
本發(fā)明的目的是介紹一種數(shù)據(jù)庫表分區(qū)的方法,既保持現(xiàn)有分區(qū)方式 "使所有記錄均勻分布"的核心優(yōu)點,又充分提高分區(qū)的自主性、靈活性、 適應性。以下對具體實施方式
進行詳細描述,但不作為對本發(fā)明的限定。本發(fā)明實施例中所述的分區(qū)方法,是將hash思維應用到list和range 分區(qū)之上,將它們的優(yōu)點融合,衍生出一種基于計算列的list和range分 區(qū)方式。結合附圖1,實施例1基于計算列的list分區(qū)示例 下面以電信光傳輸網(wǎng)絡管理系統(tǒng)中的單板表為例說明List分區(qū)的具 體實施方法。1、 準備工作a) 在單板表中加入一個計算列ID,并選擇網(wǎng)元列為分區(qū)計算列;b) 根據(jù)實際需要,設定分區(qū)的個數(shù)。假設為100。2、 對于單板表進行基于計算列的list分區(qū)a)將從1到100的整數(shù)值,按需要劃分為若干集合,并根據(jù)這些集


合在ID列上定義list分區(qū);b) 才翁入i己錄的方法1 )取單板記錄的網(wǎng)元編號,假設為字符串類型"1001",將其轉換成 整數(shù)值為1001;2)對1001執(zhí)行特定的計算輸出值=1001 % 100+ 1 = 2;3 )將計算得到的輸出值2作為待插入記錄的ID字段值;4)執(zhí)行插入,該記錄將會被存放到值2對應的list分區(qū)中。c) 查詢的方法電信光傳輸網(wǎng)管系統(tǒng)的常見查詢之一是"根據(jù)網(wǎng)元名稱獲取屬于該 網(wǎng)元的單板"。這時需要對下發(fā)的網(wǎng)元名稱先進行計算,然后將計算輸出 <直添力口至'J where i吾句中,i口 查詢網(wǎng)元"IOOI"下的單板,構造出的條件為where ID = 2 and MeName = ' 1001,這樣,DBMS的查詢分析器將根據(jù)ID:2這個條件,將掃描限制在 對應分區(qū)范圍內,提高了查詢效率。d) 更新的方法與查詢方法類似,需要在定位被更新記錄的where條件中加入計算 值。如更新網(wǎng)元"IOOI"的所有單板狀態(tài)為3,構造出的條件為where ID=2 and MeName=' 1001'結合附圖1,實施例2基于計算列的range分區(qū)示例對于輸出值范圍=數(shù)據(jù)%分區(qū)區(qū)間大小,Range分區(qū)區(qū)間大小是一個整數(shù),適用于range (范圍)分區(qū)。分區(qū)區(qū)間的大小表明了分配到同一個分區(qū)的取值范圍。舉例如有一個表,有四個字段A/B/C/D。 A字段是整數(shù),現(xiàn)要在A字 段上進行range (范圍)分區(qū)。假設確定的分區(qū)區(qū)間大小為100,同時確定 A字段取值從l開始,則會按照以下方式進行分區(qū)1 ~ 100 —個區(qū);101 ~ 200 一個區(qū);201 ~300 —個區(qū);等等。對于本專利中的實施例中描述的range (范圍)分區(qū)舉例,通過HASH 計算列,則是按照月份進行分區(qū),輸出值=數(shù)據(jù)%分區(qū)區(qū)間大小。例如 從2007年1月1日開始,每年的1月被分到 一個區(qū),每年的2月被分到 一個區(qū); 如,2008年的1月的數(shù)據(jù)和2007年1月的數(shù)據(jù)被分配到一個區(qū)。下面再以電信光傳輸網(wǎng)絡管理系統(tǒng)中的歷史告警表為例說明基于計 算列的range分區(qū)方法,具體步驟如下1、 準備工作-a)在歷史告警中加入一個計算列ID,并選擇產(chǎn)生時間列為分區(qū)計算 列;產(chǎn)生時間類型是varchar ( 14)的格式為年(4位)月(2位)日(2 位)小時(2位)分鐘(2位),比如"200701021020";b)根據(jù)實際需要,設定分區(qū)的區(qū)間大小。這里假設想按照產(chǎn)生時間 所屬月份將所有歷史告警均勻分布,則區(qū)間大小為100000000,對應字符 串的年這一位。2、 對于單板表進行基于計算列的range分區(qū) a)將按1月到12月劃分計算值區(qū)間,即1000000 2000000對應分區(qū)1 (1月^f分)、2000000 ~ 3000000對應分區(qū)2 ( 2月4分)、b)才翁入i己錄的方法取歷史告警記錄的產(chǎn)生時間,假設為 "200701021020",將其轉換 成整數(shù)值為200701021020;對200701021020執(zhí)行特定的計算輸出值=200701021020% 100000000 = 1021020;
將計算得到的輸出值1021020作為待插入記錄的ID字段值; 執(zhí)行插入,該記錄將會被存放到值2月份對應的range分區(qū)中。 c)查詢的方法電信光傳輸網(wǎng)管系統(tǒng)的常見查詢之一是"獲取某個時間段的歷史告 警"。這時需要對下發(fā)的時間段首尾值先進行計算,然后將計算輸出值添 力口至'J where i吾句中,J(口 查詢時間2007年2月20日的歷史告警記錄,下發(fā)的時間段首尾為 "200702200000"到"200702210000",這兩個串轉換成整數(shù)值并分別執(zhí) 行計算后,得到的輸出均為2,于是將其添加到where語句中where ID>=2 and ID<=2 and......這樣,DBMS的查詢分析器將纟艮據(jù)ID二2這個條件,將掃描限制在對 應分區(qū)范圍內,^^高了查詢效率。d)更新的方法與查詢方法類似,需要在定位被更新記錄的where條件中加入計算 值。如更新日期"200702210000"的所有歷史告警為過期,構造出的條件 為where ID=2 and......本發(fā)明實施例所述提供了 一種基于計算列的list和range分區(qū)的方案, 與現(xiàn)有的分區(qū)技術相比有以下優(yōu)點1、 經(jīng)過特定的計算,將列(比如時間)不可預設的取值范圍,轉換 到固定的值集合中,克服了傳統(tǒng)list和range分區(qū)不便于在這些列應用的 缺點。2、 特定計算方法,提供了充分的靈活性,可根據(jù)需要任意設置所要 劃分的分區(qū)個數(shù),以使所有記錄在每個分區(qū)均勻分布,并且控制每個分區(qū) 的規(guī)模。當然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質 的情況下,熟悉本領域的技術人員可根據(jù)本發(fā)明做出各種相應的改變和變 形,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。
權利要求
1、 一種數(shù)據(jù)庫表分區(qū)的方法,其特征在于,包括以下步驟(1) 預先確定所需要的分區(qū)參數(shù),指定表的某個字段,并執(zhí)行計算 得到該字段的輸出值;(2) 為表增加一個字段,并存放步驟(1)所選字段經(jīng)過計算后的輸出值;(3 )才艮據(jù)步驟(1)的輸出值對表劃分為若干分區(qū),將記錄的選定字 段根據(jù)步驟(1)計算輸出值,與所述若干分區(qū)進行對比,存放到對應的 分區(qū)中。
2、 如權利要求1所述的方法,其特征在于,所述數(shù)據(jù)庫表分區(qū)為基 于計算列的list分區(qū)。
3、 如權利要求2所述的方法,其特征在于,步驟(l)中所述執(zhí)行計 算,包括(111) 將步驟(1)所指定表的某個字段的值轉換為整數(shù)型數(shù)據(jù);(112) 根據(jù)預先確定所需要的分區(qū)參數(shù)中的個數(shù);(113 )對步驟(111)轉換而得的數(shù)據(jù)執(zhí)行輸出值=數(shù)據(jù)%分區(qū)個數(shù)+1。
4、 如權利要求3所述的方法,其特征在于,步驟(3)包括(311) 列出步驟(1)中指定字段經(jīng)計算后的輸出值,劃分為若干分 區(qū),每個分區(qū)對應一個輸出值集合,集合相互不重合;(312) 將記錄的選定字段根據(jù)步驟(1 )計算輸出值與分區(qū)進行對比, 存放到值相等的分區(qū)。
5、 如權利要求1所述的方法,其特征在于,所述數(shù)據(jù)庫表分區(qū)為基 于計算列的range分區(qū)。
6、 如權利要求5所述的方法,其特征在于,步驟(l)中所述執(zhí)行計 算,包括(121) 將步驟(1)所指定表的某個字段的值轉換為整數(shù)型數(shù)據(jù);(122) 根據(jù)預先確定所需要的分區(qū)參數(shù)中的區(qū)間大小,每個區(qū)間的 大小相等;(123 )對步驟(121)轉換而得的數(shù)據(jù)執(zhí)行輸出值范圍=數(shù)據(jù)%分 區(qū)區(qū)間大小。
7、如權利要求6所述的方法,其特征在于,步驟(3)包括(321) 列出步驟(1)中指定字段經(jīng)計算后的輸出值范圍,劃分為若 干分區(qū),每個分區(qū)對應一個輸出值范圍;(322) 將記錄的選定字段根據(jù)步驟(1)計算輸出值范圍與分區(qū)進行 對比,存放到輸出值范圍所落入的對應的分區(qū)。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)庫表分區(qū)的方法,包括(1)預先確定所需要的分區(qū)參數(shù),指定表的某個字段,并執(zhí)行計算得到該字段的輸出值;(2)為表增加一個字段,并存放步驟(1)所選字段經(jīng)過計算后的輸出值;(3)根據(jù)步驟(1)的輸出值對表劃分為若干分區(qū),將記錄的選定字段根據(jù)步驟(1)計算輸出值,與所述若干分區(qū)進行對比,存放到對應的分區(qū)中。本發(fā)明既保持現(xiàn)有分區(qū)方式“使所有記錄均勻分布”的核心優(yōu)點,又充分提高分區(qū)的自主性、靈活性、適應性。
文檔編號G06F17/30GK101145158SQ20071011063
公開日2008年3月19日 申請日期2007年6月6日 優(yōu)先權日2007年6月6日
發(fā)明者任泰云, 明 陳, 馬潤宏 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
连州市| 建水县| 海南省| 石城县| 长泰县| 台江县| 嘉黎县| 麻城市| 广汉市| 水富县| 河源市| 怀化市| 三穗县| 西丰县| 琼结县| 乌鲁木齐市| 乌审旗| 千阳县| 潜山县| 新兴县| 马山县| 若尔盖县| 定远县| 咸丰县| 碌曲县| 克拉玛依市| 泰宁县| 井陉县| 高邑县| 建始县| 阿拉善右旗| 桐城市| 塘沽区| 佛山市| 屯留县| 土默特右旗| 沁阳市| 苏尼特左旗| 南平市| 江口县| 建德市|