国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

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

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


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