專利名稱::生成數(shù)據(jù)庫(kù)分區(qū)執(zhí)行計(jì)劃的方法及裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)據(jù)庫(kù)技術(shù),特別涉及一種生成數(shù)據(jù)庫(kù)分區(qū)執(zhí)行計(jì)劃的方法及裝置。
背景技術(shù):
:現(xiàn)在的數(shù)據(jù)庫(kù),無論是用于數(shù)據(jù)倉(cāng)庫(kù)或操作數(shù)據(jù)存儲(chǔ),都包含豐富的海量數(shù)據(jù)對(duì)象信息,因而,數(shù)據(jù)庫(kù)性能的優(yōu)劣對(duì)用戶及時(shí)查找和展示用戶需要的信息起著非常重要的作用,其中,執(zhí)行計(jì)劃是影響數(shù)據(jù)庫(kù)性能的一大關(guān)鍵因素,執(zhí)行計(jì)劃是由數(shù)據(jù)庫(kù)中基于成本的優(yōu)化器(CBO,Cost-basedOptimizer)根據(jù)解析得到的用戶輸入的參數(shù)自動(dòng)生成用以查詢數(shù)據(jù)對(duì)象的結(jié)構(gòu)化查詢語言(SQL,StructuredQueryLanguage),根據(jù)SQL查詢數(shù)據(jù)庫(kù)中預(yù)先存儲(chǔ)的數(shù)據(jù)對(duì)象統(tǒng)計(jì)信息,選擇代價(jià)最小的訪問路徑,根據(jù)訪問路徑找到相應(yīng)的數(shù)據(jù)對(duì)象,并將該數(shù)據(jù)對(duì)象信息返回給用戶的自動(dòng)執(zhí)行方式。數(shù)據(jù)庫(kù)自動(dòng)生成的執(zhí)行計(jì)劃的恰當(dāng)與否,會(huì)對(duì)全數(shù)據(jù)庫(kù)的性能產(chǎn)生非常大的影響,例如,如果涉及數(shù)據(jù)庫(kù)核心大表的執(zhí)行計(jì)劃出錯(cuò),將可能引發(fā)一連串的連鎖反應(yīng),導(dǎo)致數(shù)據(jù)庫(kù)性能急劇下降,甚至能夠耗盡數(shù)據(jù)庫(kù)資源,造成宕機(jī)。隨著數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的日漸復(fù)雜,數(shù)據(jù)庫(kù)中數(shù)據(jù)對(duì)象量也越來越多,數(shù)據(jù)對(duì)象的設(shè)計(jì)也越來越細(xì)化,以數(shù)據(jù)對(duì)象,也就是表為例,在電信級(jí)核心數(shù)據(jù)庫(kù)(表)中,由于數(shù)據(jù)量巨大,如果以包含全部數(shù)據(jù)對(duì)象的數(shù)據(jù)庫(kù)生成執(zhí)行計(jì)劃,將使得查詢效率十分低下,因此,本領(lǐng)域技術(shù)人員提出的改進(jìn)方法是根據(jù)時(shí)間或者業(yè)務(wù)規(guī)則等引入分區(qū)技術(shù),將數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象分為多個(gè)分區(qū),數(shù)據(jù)庫(kù)為每個(gè)分區(qū)對(duì)應(yīng)生成一個(gè)執(zhí)行計(jì)劃,例如,根據(jù)時(shí)間規(guī)則引入的分區(qū)技術(shù),按照一定的時(shí)間間隔(每日、每周、每月等)將表分為多個(gè)分區(qū),由于相同時(shí)間間隔內(nèi)的數(shù)據(jù)對(duì)象量不同,各分區(qū)的數(shù)據(jù)對(duì)象統(tǒng)計(jì)信息也各不相同,因而,生成多個(gè)版本的執(zhí)行計(jì)劃,這樣,通過將原數(shù)據(jù)量巨大的單表拆分為合理大小的多個(gè)分區(qū),以保證表執(zhí)行的高效性,提高查詢效率。現(xiàn)有技術(shù)中,數(shù)據(jù)對(duì)象包含的分區(qū)統(tǒng)計(jì)信息量包含分區(qū)字節(jié)(bytes)大小、物理片段(segment)大小、分區(qū)塊(block)數(shù)、數(shù)據(jù)片段(datasegment)塊數(shù)、索引片段(indexsegment)塊數(shù)、分區(qū)記錄行數(shù)、索引記錄數(shù)等信息,隨著分區(qū)技術(shù)的引入,不同分區(qū)之間,由于數(shù)據(jù)對(duì)象量差異,數(shù)據(jù)對(duì)象分布的不同,各分區(qū)中包含的數(shù)據(jù)對(duì)象量不同,使得每個(gè)分區(qū)對(duì)應(yīng)的數(shù)據(jù)對(duì)象的分區(qū)統(tǒng)計(jì)信息也不同,從而導(dǎo)致生成的執(zhí)行計(jì)劃也可能不同,這樣,同一張表有可能產(chǎn)生多個(gè)版本的執(zhí)行計(jì)劃,例如,適合小分區(qū)及初始分區(qū)的單分區(qū)全表掃描計(jì)劃、適合標(biāo)準(zhǔn)大分區(qū)的索引掃描計(jì)劃等,舉例來說,對(duì)于表TAB_A,通過分區(qū)技術(shù)被劃分為兩個(gè)分區(qū)PAR_A和PAR_B,其中PAR_A是小分區(qū),包含幾百條數(shù)據(jù)對(duì)象或記錄,PAR_B是大分區(qū),包含幾十萬條數(shù)據(jù)對(duì)象或記錄,數(shù)據(jù)庫(kù)根據(jù)各分區(qū)的分區(qū)統(tǒng)計(jì)信息,分別為PAR_A生成單分區(qū)全表掃描的執(zhí)行計(jì)劃,為PAR_B生成索引掃描的執(zhí)行計(jì)劃。也就是說,對(duì)于相同的SQL而言,如果訪問PAR_A,執(zhí)行計(jì)劃采取單分區(qū)全表掃描是最合適的,其訪問效率較高,而對(duì)于PAR_B,執(zhí)行計(jì)劃采取索引掃描是最合適的。然而,在現(xiàn)有數(shù)據(jù)庫(kù)中,由于分區(qū)PAR_A和PAR_B都屬表TAB_A,因此,在數(shù)據(jù)庫(kù)參數(shù)⑶RS0R_SHARING設(shè)置為FORCE的情況下,數(shù)據(jù)庫(kù)默認(rèn)會(huì)將這兩個(gè)分區(qū)的執(zhí)行計(jì)劃進(jìn)行共享,也就是說,數(shù)據(jù)庫(kù)將首次訪問某一分區(qū)的執(zhí)行計(jì)劃作為后續(xù)訪問其他分區(qū)的執(zhí)行計(jì)劃。例如,如果首先訪問PAR_A,則后續(xù)訪問PAR_B的SQL,可能將沿用PAR_A的單分區(qū)全表掃描的執(zhí)行計(jì)劃,這樣,對(duì)于有大量數(shù)據(jù)的PART_B,數(shù)據(jù)庫(kù)的執(zhí)行效率將大大下降,甚至引起堵塞;當(dāng)然,如果首先訪問PAR_B,則后續(xù)訪問PAR_A的SQL,可能將沿用PAR_B的索引掃描的執(zhí)行計(jì)劃,對(duì)于小分區(qū)和初始分區(qū),如果采用索引掃描的執(zhí)行計(jì)劃,其執(zhí)行代價(jià)與使用單分區(qū)全表掃描的代價(jià),相差大概在毫秒級(jí),因而,在執(zhí)行效率上感知差異不大。針對(duì)上述執(zhí)行計(jì)劃共享引起的執(zhí)行效率較低的技術(shù)問題,目前采用的處理技術(shù)有下兩種第一種針對(duì)每一條涉及到數(shù)據(jù)對(duì)象的SQL,在SQL中使用提示(HINT),針對(duì)某一具體的SQL,使用提示,指定其所要采取的執(zhí)行計(jì)劃,即手工強(qiáng)制制定執(zhí)行計(jì)劃,在每條需要訪問此類數(shù)據(jù)對(duì)象的SQL上,加上HINT,指定該數(shù)據(jù)對(duì)象的執(zhí)行計(jì)劃。第二種針對(duì)每一條涉及到數(shù)據(jù)對(duì)象的SQL,使用數(shù)據(jù)庫(kù)提供的outline語法,將執(zhí)行計(jì)劃固定,全部采用索引掃描的方式,使其不按照分區(qū)差異進(jìn)行變化,以有效提高大數(shù)據(jù)量分區(qū)的執(zhí)行計(jì)劃的效率。隨著信息化系統(tǒng)發(fā)展的加快,以及集群系統(tǒng)的大范圍使用,數(shù)據(jù)庫(kù)規(guī)模及復(fù)雜程度呈現(xiàn)日益增長(zhǎng)的趨勢(shì),特別是對(duì)于電信,金融等重要行業(yè)的數(shù)據(jù)中心,其核心業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫(kù)規(guī)模已經(jīng)達(dá)到IOT級(jí)。對(duì)于如此大規(guī)模的數(shù)據(jù)庫(kù)系統(tǒng),以上通過針對(duì)每一條涉及到數(shù)據(jù)對(duì)象的SQL進(jìn)行設(shè)置的方法,均需要對(duì)每一條訪問到該類數(shù)據(jù)對(duì)象的SQL進(jìn)行人為的手工處理,而由于目前復(fù)雜多變的應(yīng)用數(shù)據(jù)庫(kù),其訪問數(shù)據(jù)庫(kù)的SQL條數(shù)已經(jīng)遠(yuǎn)遠(yuǎn)超過想象,靠人工手動(dòng)的對(duì)每一條涉及到此類數(shù)據(jù)對(duì)象的SQL進(jìn)行針對(duì)性處理,已經(jīng)不切實(shí)際,處理效率低下,存在較多的盲區(qū)、漏洞以及不確定性,使得執(zhí)行的可靠性不高;進(jìn)一步地,修改SQL,需要大規(guī)模地修改數(shù)據(jù)庫(kù)的應(yīng)用程序,增加了數(shù)據(jù)庫(kù)維護(hù)成本。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的主要目的在于提出一種生成數(shù)據(jù)庫(kù)分區(qū)執(zhí)行計(jì)劃的方法,降低數(shù)據(jù)庫(kù)維護(hù)成本、提高數(shù)據(jù)庫(kù)執(zhí)行效率。本發(fā)明的另一目的在于提出一種生成數(shù)據(jù)庫(kù)分區(qū)執(zhí)行計(jì)劃的裝置,降低數(shù)據(jù)庫(kù)維護(hù)成本、提高數(shù)據(jù)庫(kù)執(zhí)行效率。為達(dá)到上述目的,本發(fā)明提供了一種生成數(shù)據(jù)庫(kù)分區(qū)執(zhí)行計(jì)劃的方法,該方法包括獲取數(shù)據(jù)庫(kù)分區(qū)統(tǒng)計(jì)信息量滿足預(yù)設(shè)條件的分區(qū)作為非標(biāo)準(zhǔn)分區(qū);根據(jù)非標(biāo)準(zhǔn)分區(qū)的分區(qū)統(tǒng)計(jì)信息量以及預(yù)設(shè)條件,從具有索引掃描執(zhí)行計(jì)劃的標(biāo)準(zhǔn)分區(qū)中選取預(yù)定比率的數(shù)據(jù)對(duì)象;更新選取的預(yù)定比率的數(shù)據(jù)對(duì)象中存在主鍵或唯一性約束的字段,生成虛擬化數(shù)據(jù)對(duì)象;將虛擬化數(shù)據(jù)對(duì)象插入非標(biāo)準(zhǔn)分區(qū)中并更新數(shù)據(jù)庫(kù)中存儲(chǔ)的非標(biāo)準(zhǔn)分區(qū)的分區(qū)統(tǒng)計(jì)信息;根據(jù)分區(qū)的數(shù)據(jù)對(duì)象的分區(qū)統(tǒng)計(jì)信息量生成執(zhí)行計(jì)劃。所述分區(qū)統(tǒng)計(jì)信息量包括分區(qū)字節(jié)大小、物理片段大小、分區(qū)塊數(shù)、數(shù)據(jù)片段塊數(shù)、索引片段塊數(shù)、分區(qū)記錄行數(shù)以及索引記錄數(shù)中的一個(gè)或其任意組合。所述預(yù)設(shè)條件包括分區(qū)的物理片段大小小于10兆、且該分區(qū)的物理片段大小與數(shù)據(jù)庫(kù)中最大三個(gè)分區(qū)的片段大小的平均值之比小于0.01;或,分區(qū)的分區(qū)記錄行數(shù)小于1000條、且該分區(qū)的分區(qū)記錄行數(shù)與數(shù)據(jù)庫(kù)中最大三個(gè)分區(qū)的分區(qū)記錄行數(shù)的平均值之比小于0.01。通過調(diào)用數(shù)據(jù)庫(kù)中的dbmS_StatS.set_table_stats系統(tǒng)程序包更新所述選取的預(yù)定比率的數(shù)據(jù)對(duì)象中存在主鍵或唯一性約束的字段。在所述更新數(shù)據(jù)庫(kù)中存儲(chǔ)的非標(biāo)準(zhǔn)分區(qū)的分區(qū)統(tǒng)計(jì)信息后,進(jìn)一步包括數(shù)據(jù)庫(kù)查詢所述非標(biāo)準(zhǔn)分區(qū)的分區(qū)統(tǒng)計(jì)信息量是否滿足預(yù)設(shè)條件,如果不滿足,執(zhí)行所述根據(jù)分區(qū)的數(shù)據(jù)對(duì)象的分區(qū)統(tǒng)計(jì)信息量生成執(zhí)行計(jì)劃的步驟。進(jìn)一步包括刪除插入非標(biāo)準(zhǔn)分區(qū)的虛擬化數(shù)據(jù)對(duì)象。進(jìn)一步包括鎖定存儲(chǔ)的分區(qū)統(tǒng)計(jì)信息量。一種生成數(shù)據(jù)庫(kù)分區(qū)執(zhí)行計(jì)劃的裝置,該裝置包括分區(qū)劃分模塊、分區(qū)模塊、分區(qū)統(tǒng)計(jì)信息量獲取模塊、數(shù)據(jù)對(duì)象量計(jì)算模塊、數(shù)據(jù)對(duì)象虛擬化模塊、執(zhí)行計(jì)劃生成模塊,其中,分區(qū)劃分模塊,用于將數(shù)據(jù)庫(kù)中數(shù)據(jù)對(duì)象按照預(yù)設(shè)規(guī)則進(jìn)行劃分,輸出至分區(qū)模塊;分區(qū)模塊,用于分別存儲(chǔ)分區(qū)劃分模塊劃分的數(shù)據(jù)對(duì)象;分區(qū)統(tǒng)計(jì)信息量獲取模塊,用于獲取分區(qū)模塊中數(shù)據(jù)對(duì)象的分區(qū)統(tǒng)計(jì)信息量,如果分區(qū)統(tǒng)計(jì)信息量不滿足預(yù)設(shè)條件,將該分區(qū)統(tǒng)計(jì)信息量信息輸出至數(shù)據(jù)對(duì)象量計(jì)算模塊;數(shù)據(jù)對(duì)象虛擬化模塊,用于根據(jù)接收的需要選取的數(shù)據(jù)對(duì)象量,從標(biāo)準(zhǔn)分區(qū)中選取預(yù)定比率的數(shù)據(jù)對(duì)象,并更新選取的預(yù)定比率的數(shù)據(jù)對(duì)象中存在主鍵或唯一性約束的字段,生成虛擬化數(shù)據(jù)對(duì)象,輸出至相應(yīng)的分區(qū)模塊中,并觸發(fā)執(zhí)行計(jì)劃生成模塊;執(zhí)行計(jì)劃生成模塊,用于根據(jù)接收的觸發(fā)信息,從分區(qū)統(tǒng)計(jì)信息量獲取模塊中獲取觸發(fā)信息對(duì)應(yīng)的分區(qū)模塊的分區(qū)統(tǒng)計(jì)信息量,根據(jù)分區(qū)統(tǒng)計(jì)信息量生成執(zhí)行計(jì)劃。所述分區(qū)模塊進(jìn)一步用于在獲知執(zhí)行計(jì)劃生成模塊為該分區(qū)模塊生成索引掃描的執(zhí)行計(jì)劃后,刪除插入的虛擬化數(shù)據(jù)對(duì)象。由上述的技術(shù)方案可見,本發(fā)明提供的一種生成數(shù)據(jù)庫(kù)分區(qū)執(zhí)行計(jì)劃的方法及裝置,通過獲取數(shù)據(jù)庫(kù)分區(qū)統(tǒng)計(jì)信息量滿足預(yù)設(shè)條件的分區(qū)作為非標(biāo)準(zhǔn)分區(qū);根據(jù)非標(biāo)準(zhǔn)分區(qū)的分區(qū)統(tǒng)計(jì)信息量以及預(yù)設(shè)條件,從具有索引掃描執(zhí)行計(jì)劃的標(biāo)準(zhǔn)分區(qū)中選取預(yù)定比率的數(shù)據(jù)對(duì)象;更新選取的預(yù)定比率的數(shù)據(jù)對(duì)象中存在主鍵或唯一性約束的字段,生成虛擬化數(shù)據(jù)對(duì)象;將虛擬化數(shù)據(jù)對(duì)象插入非標(biāo)準(zhǔn)分區(qū)中并更新數(shù)據(jù)庫(kù)中存儲(chǔ)的非標(biāo)準(zhǔn)分區(qū)的分區(qū)統(tǒng)計(jì)信息;根據(jù)分區(qū)的數(shù)據(jù)對(duì)象的分區(qū)統(tǒng)計(jì)信息量生成執(zhí)行計(jì)劃。這樣,采用數(shù)據(jù)對(duì)象虛擬化與分區(qū)統(tǒng)計(jì)信息量虛擬化相結(jié)合的方式,非標(biāo)準(zhǔn)分區(qū)采用標(biāo)準(zhǔn)化執(zhí)行計(jì)劃,可以避免多版本執(zhí)行計(jì)劃共享造成的一系列連鎖問題;進(jìn)一步地,通過對(duì)非標(biāo)準(zhǔn)分區(qū)進(jìn)行標(biāo)準(zhǔn)化處理,避免了人工的SQL級(jí)手工處理,降低了數(shù)據(jù)庫(kù)維護(hù)成本,能夠保證后續(xù)各種業(yè)務(wù)SQL的穩(wěn)定訪問,增強(qiáng)了數(shù)據(jù)庫(kù)整體運(yùn)行穩(wěn)定性。圖1為本發(fā)明實(shí)施例生成數(shù)據(jù)庫(kù)分區(qū)執(zhí)行計(jì)劃的方法流程示意圖。圖2為本發(fā)明實(shí)施例生成數(shù)據(jù)庫(kù)分區(qū)執(zhí)行計(jì)劃的裝置結(jié)構(gòu)示意圖。具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。實(shí)際應(yīng)用中,在數(shù)據(jù)庫(kù)參數(shù)⑶RS0R_SHARING設(shè)置為FORCE的情況下,由于數(shù)據(jù)庫(kù)默認(rèn)將分區(qū)的執(zhí)行計(jì)劃進(jìn)行共享,對(duì)于小分區(qū)和初始分區(qū),如果采用共享的索引掃描的執(zhí)行計(jì)劃,其執(zhí)行代價(jià)與使用單分區(qū)全表掃描的代價(jià),相差大概在毫秒級(jí),舉例來說,對(duì)于只有少量記錄的小分區(qū)或者初始分區(qū),使用單分區(qū)全表掃描的代價(jià)為3,實(shí)際處理時(shí)間大概為0.01秒,使用索引掃描的代價(jià)為5,實(shí)際處理時(shí)間大概為0.015秒,執(zhí)行效率上感知差異較?。欢鴮?duì)于大分區(qū),如果采用共享的單分區(qū)全表掃描的執(zhí)行計(jì)劃,其執(zhí)行代價(jià)與使用索引掃描的代價(jià),則相差巨大。本發(fā)明實(shí)施例中,基于上述考慮,如果對(duì)數(shù)據(jù)庫(kù)中的分區(qū)進(jìn)行標(biāo)準(zhǔn)化處理,即對(duì)于不同的分區(qū),都產(chǎn)生同樣的基于索引掃描的標(biāo)準(zhǔn)執(zhí)行計(jì)劃,這樣,可以最大限度地避免由于共享了錯(cuò)誤的執(zhí)行計(jì)劃而引起的問題;而且,后續(xù)所有訪問數(shù)據(jù)對(duì)象的SQL,都能夠按照標(biāo)準(zhǔn)分區(qū)產(chǎn)生的標(biāo)準(zhǔn)執(zhí)行計(jì)劃執(zhí)行查詢和搜索,無需人為手工對(duì)SQL進(jìn)行調(diào)控,可以降低人工處理的盲區(qū)及不確定性,降低數(shù)據(jù)庫(kù)維護(hù)成本、提高數(shù)據(jù)庫(kù)執(zhí)行的可靠性以及執(zhí)行效率?,F(xiàn)有技術(shù)中,考慮到數(shù)據(jù)庫(kù)基于分區(qū)的數(shù)據(jù)對(duì)象的分區(qū)統(tǒng)計(jì)信息自動(dòng)生成執(zhí)行計(jì)劃,如果分區(qū)的數(shù)據(jù)對(duì)象量較少,則數(shù)據(jù)庫(kù)為分區(qū)提供的分區(qū)空間也較小,因而,為該分區(qū)生成單分區(qū)全表掃描的執(zhí)行計(jì)劃。本實(shí)施例中,如果分區(qū)的數(shù)據(jù)對(duì)象量較少,考慮從大分區(qū)中提取一定量的數(shù)據(jù)對(duì)象,并對(duì)其進(jìn)行相應(yīng)處理后插入到該數(shù)據(jù)對(duì)象量較小的分區(qū)中,對(duì)該分區(qū)進(jìn)行擴(kuò)展,這樣,數(shù)據(jù)庫(kù)在檢測(cè)到該分區(qū)的數(shù)據(jù)對(duì)象的分區(qū)統(tǒng)計(jì)信息滿足預(yù)先設(shè)定的索引掃描的條件后,自動(dòng)生成索引掃描的執(zhí)行計(jì)劃,這樣,與大分區(qū)的索引掃描的執(zhí)行計(jì)劃相一致。即以大分區(qū)為基準(zhǔn),對(duì)小分區(qū)、初始分區(qū)等分區(qū),進(jìn)行分區(qū)統(tǒng)計(jì)信息的虛擬化處理,通過分區(qū)統(tǒng)計(jì)信息的虛擬化,引導(dǎo)該分區(qū)產(chǎn)生統(tǒng)一的執(zhí)行計(jì)劃。以避免單純進(jìn)行分區(qū)統(tǒng)計(jì)信息設(shè)置,由于分區(qū)統(tǒng)計(jì)信息可能與實(shí)際片段(segment)大小等指標(biāo)不符,數(shù)據(jù)庫(kù)中的CBO判斷該分區(qū)統(tǒng)計(jì)信息無效并將該統(tǒng)計(jì)信息忽略,從而不能產(chǎn)生統(tǒng)一的執(zhí)行計(jì)劃。所應(yīng)說明的是,本發(fā)明實(shí)施例中,數(shù)據(jù)庫(kù)具有為大分區(qū)自動(dòng)生成索引掃描的執(zhí)行計(jì)劃的功能,例如,對(duì)于分區(qū)的分區(qū)統(tǒng)計(jì)信息量超過預(yù)設(shè)條件時(shí),自動(dòng)生成索引掃描的執(zhí)行計(jì)劃,而對(duì)于小于預(yù)設(shè)條件的分區(qū),自動(dòng)為該分區(qū)生成單分區(qū)全表掃描的執(zhí)行計(jì)劃,對(duì)于數(shù)據(jù)庫(kù)不具有為大分區(qū)自動(dòng)生成索引掃描的執(zhí)行計(jì)劃功能的情況,不屬于本發(fā)明實(shí)施例的討論范圍。圖1為本發(fā)明實(shí)施例生成數(shù)據(jù)庫(kù)分區(qū)執(zhí)行計(jì)劃的方法流程示意圖。參見圖1,該流程包括步驟101,獲取數(shù)據(jù)庫(kù)分區(qū)統(tǒng)計(jì)信息量滿足預(yù)設(shè)條件的分區(qū)作為非標(biāo)準(zhǔn)分區(qū);本步驟中,對(duì)數(shù)據(jù)庫(kù)進(jìn)行分區(qū)劃分與現(xiàn)有技術(shù)相同,每一分區(qū)對(duì)應(yīng)一個(gè)分區(qū)統(tǒng)計(jì)信息或分區(qū)統(tǒng)計(jì)信息量,在此不再贅述。7本實(shí)施例中,將具有索引掃描的執(zhí)行計(jì)劃的分區(qū)稱為標(biāo)準(zhǔn)分區(qū),其數(shù)據(jù)對(duì)象的分區(qū)統(tǒng)計(jì)信息量大于或等于預(yù)設(shè)條件;將不具有索引掃描的執(zhí)行計(jì)劃的分區(qū)稱為非標(biāo)準(zhǔn)分區(qū),獲取數(shù)據(jù)庫(kù)各分區(qū)中分區(qū)統(tǒng)計(jì)信息量滿足預(yù)設(shè)條件的分區(qū)也就是獲取數(shù)據(jù)庫(kù)中的非標(biāo)準(zhǔn)分區(qū)。本步驟中,預(yù)先設(shè)定的閾值可以根據(jù)數(shù)據(jù)庫(kù)中大分區(qū)的數(shù)據(jù)對(duì)象的分區(qū)統(tǒng)計(jì)信息確定,其值可以為數(shù)據(jù)庫(kù)為該分區(qū)自動(dòng)生成索引掃描的執(zhí)行計(jì)劃所需的最小的數(shù)據(jù)對(duì)象的分區(qū)統(tǒng)計(jì)信息量。舉例來說,設(shè)Pi(i=1,2,…,η)表示數(shù)據(jù)庫(kù)中第i個(gè)分區(qū),η為分區(qū)總個(gè)數(shù);BiG=1,2,…,η)表示分區(qū)Pi的物理片段(segment)大??;Bmax表示分區(qū)Pi(i=1,2,…,η)中最大三個(gè)分區(qū)的segment大小的平均值;Ri(i=1,2,…,η)表示分區(qū)Pi的分區(qū)記錄行數(shù);Rmax表示分EPi(i=1,2,…,η)中最大三個(gè)分區(qū)的分區(qū)記錄行數(shù)的平均值;預(yù)設(shè)條件可以為某一分區(qū)的物理segment大小小于10兆(M)、且該分區(qū)的物理segment大小與數(shù)據(jù)庫(kù)中最大三個(gè)分區(qū)的segment大小的平均值之比小于0.01,其判斷公式的表達(dá)式為權(quán)利要求1.一種生成數(shù)據(jù)庫(kù)分區(qū)執(zhí)行計(jì)劃的方法,其特征在于,該方法包括獲取數(shù)據(jù)庫(kù)分區(qū)統(tǒng)計(jì)信息量滿足預(yù)設(shè)條件的分區(qū)作為非標(biāo)準(zhǔn)分區(qū);根據(jù)非標(biāo)準(zhǔn)分區(qū)的分區(qū)統(tǒng)計(jì)信息量以及預(yù)設(shè)條件,從具有索引掃描執(zhí)行計(jì)劃的標(biāo)準(zhǔn)分區(qū)中選取預(yù)定比率的數(shù)據(jù)對(duì)象;更新選取的預(yù)定比率的數(shù)據(jù)對(duì)象中存在主鍵或唯一性約束的字段,生成虛擬化數(shù)據(jù)對(duì)象;將虛擬化數(shù)據(jù)對(duì)象插入非標(biāo)準(zhǔn)分區(qū)中并更新數(shù)據(jù)庫(kù)中存儲(chǔ)的非標(biāo)準(zhǔn)分區(qū)的分區(qū)統(tǒng)計(jì)fn息;根據(jù)分區(qū)的數(shù)據(jù)對(duì)象的分區(qū)統(tǒng)計(jì)信息量生成執(zhí)行計(jì)劃。2.如權(quán)利要求1所述的方法,其特征在于,所述分區(qū)統(tǒng)計(jì)信息量包括分區(qū)字節(jié)大小、物理片段大小、分區(qū)塊數(shù)、數(shù)據(jù)片段塊數(shù)、索引片段塊數(shù)、分區(qū)記錄行數(shù)以及索引記錄數(shù)中的一個(gè)或其任意組合。3.如權(quán)利要求2所述的方法,其特征在于,所述預(yù)設(shè)條件包括分區(qū)的物理片段大小小于10兆、且該分區(qū)的物理片段大小與數(shù)據(jù)庫(kù)中最大三個(gè)分區(qū)的片段大小的平均值之比小于0.01;或,分區(qū)的分區(qū)記錄行數(shù)小于1000條、且該分區(qū)的分區(qū)記錄行數(shù)與數(shù)據(jù)庫(kù)中最大三個(gè)分區(qū)的分區(qū)記錄行數(shù)的平均值之比小于0.01。4.如權(quán)利要求1所述的方法,其特征在于,通過調(diào)用數(shù)據(jù)庫(kù)中的dbmS_StatS.set_table_StatS系統(tǒng)程序包更新所述選取的預(yù)定比率的數(shù)據(jù)對(duì)象中存在主鍵或唯一性約束的字段。5.如權(quán)利要求1所述的方法,其特征在于,在所述更新數(shù)據(jù)庫(kù)中存儲(chǔ)的非標(biāo)準(zhǔn)分區(qū)的分區(qū)統(tǒng)計(jì)信息后,進(jìn)一步包括數(shù)據(jù)庫(kù)查詢所述非標(biāo)準(zhǔn)分區(qū)的分區(qū)統(tǒng)計(jì)信息量是否滿足預(yù)設(shè)條件,如果不滿足,執(zhí)行所述根據(jù)分區(qū)的數(shù)據(jù)對(duì)象的分區(qū)統(tǒng)計(jì)信息量生成執(zhí)行計(jì)劃的步馬聚ο6.如權(quán)利要求1至5任一項(xiàng)所述的方法,其特征在于,進(jìn)一步包括刪除插入非標(biāo)準(zhǔn)分區(qū)的虛擬化數(shù)據(jù)對(duì)象。7.權(quán)利要求6所述的方法,其特征在于,進(jìn)一步包括鎖定存儲(chǔ)的分區(qū)統(tǒng)計(jì)信息量。8.—種生成數(shù)據(jù)庫(kù)分區(qū)執(zhí)行計(jì)劃的裝置,其特征在于,該裝置包括分區(qū)劃分模塊、分區(qū)模塊、分區(qū)統(tǒng)計(jì)信息量獲取模塊、數(shù)據(jù)對(duì)象量計(jì)算模塊、數(shù)據(jù)對(duì)象虛擬化模塊、執(zhí)行計(jì)劃生成模塊,其中,分區(qū)劃分模塊,用于將數(shù)據(jù)庫(kù)中數(shù)據(jù)對(duì)象按照預(yù)設(shè)規(guī)則進(jìn)行劃分,輸出至分區(qū)模塊;分區(qū)模塊,用于分別存儲(chǔ)分區(qū)劃分模塊劃分的數(shù)據(jù)對(duì)象;分區(qū)統(tǒng)計(jì)信息量獲取模塊,用于獲取分區(qū)模塊中數(shù)據(jù)對(duì)象的分區(qū)統(tǒng)計(jì)信息量,如果分區(qū)統(tǒng)計(jì)信息量不滿足預(yù)設(shè)條件,將該分區(qū)統(tǒng)計(jì)信息量信息輸出至數(shù)據(jù)對(duì)象量計(jì)算模塊;數(shù)據(jù)對(duì)象虛擬化模塊,用于根據(jù)接收的需要選取的數(shù)據(jù)對(duì)象量,從標(biāo)準(zhǔn)分區(qū)中選取預(yù)定比率的數(shù)據(jù)對(duì)象,并更新選取的預(yù)定比率的數(shù)據(jù)對(duì)象中存在主鍵或唯一性約束的字段,生成虛擬化數(shù)據(jù)對(duì)象,輸出至相應(yīng)的分區(qū)模塊中,并觸發(fā)執(zhí)行計(jì)劃生成模塊;執(zhí)行計(jì)劃生成模塊,用于根據(jù)接收的觸發(fā)信息,從分區(qū)統(tǒng)計(jì)信息量獲取模塊中獲取觸發(fā)信息對(duì)應(yīng)的分區(qū)模塊的分區(qū)統(tǒng)計(jì)信息量,根據(jù)分區(qū)統(tǒng)計(jì)信息量生成執(zhí)行計(jì)劃。9.如權(quán)利要求8所述的裝置,其特征在于,所述分區(qū)模塊進(jìn)一步用于在獲知執(zhí)行計(jì)劃生成模塊為該分區(qū)模塊生成索引掃描的執(zhí)行計(jì)劃后,刪除插入的虛擬化數(shù)據(jù)對(duì)象。全文摘要本發(fā)明公開了一種生成數(shù)據(jù)庫(kù)分區(qū)執(zhí)行計(jì)劃的方法及裝置,包括獲取數(shù)據(jù)庫(kù)分區(qū)統(tǒng)計(jì)信息量滿足預(yù)設(shè)條件的分區(qū)作為非標(biāo)準(zhǔn)分區(qū);根據(jù)非標(biāo)準(zhǔn)分區(qū)的分區(qū)統(tǒng)計(jì)信息量以及預(yù)設(shè)條件,從具有索引掃描執(zhí)行計(jì)劃的標(biāo)準(zhǔn)分區(qū)中選取預(yù)定比率的數(shù)據(jù)對(duì)象;更新選取的預(yù)定比率的數(shù)據(jù)對(duì)象中存在主鍵或唯一性約束的字段,生成虛擬化數(shù)據(jù)對(duì)象;將虛擬化數(shù)據(jù)對(duì)象插入非標(biāo)準(zhǔn)分區(qū)中并更新數(shù)據(jù)庫(kù)中存儲(chǔ)的非標(biāo)準(zhǔn)分區(qū)的分區(qū)統(tǒng)計(jì)信息;根據(jù)分區(qū)的數(shù)據(jù)對(duì)象的分區(qū)統(tǒng)計(jì)信息量生成執(zhí)行計(jì)劃。應(yīng)用本發(fā)明,可以降低數(shù)據(jù)庫(kù)維護(hù)成本、提高數(shù)據(jù)庫(kù)執(zhí)行效率。文檔編號(hào)G06F17/30GK102262636SQ201010190138公開日2011年11月30日申請(qǐng)日期2010年5月25日優(yōu)先權(quán)日2010年5月25日發(fā)明者李杰毅,王曉征,肖愛元申請(qǐng)人:中國(guó)移動(dòng)通信集團(tuán)浙江有限公司