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