亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

面向數(shù)據(jù)庫管理系統(tǒng)的計劃樹優(yōu)化方法和裝置的制造方法

文檔序號:8339694閱讀:616來源:國知局
面向數(shù)據(jù)庫管理系統(tǒng)的計劃樹優(yōu)化方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明實施例涉及數(shù)據(jù)庫管理技術(shù),尤其涉及一種面向數(shù)據(jù)庫管理系統(tǒng)的計劃樹 優(yōu)化方法。
【背景技術(shù)】
[0002] 數(shù)據(jù)庫管理系統(tǒng)根據(jù)用戶輸入的SQL (Structured Query Language,結(jié)構(gòu)化查詢 語言)語句生成對應的計劃樹。計劃樹是一個由各種執(zhí)行操作符作為節(jié)點的樹狀結(jié)構(gòu),不 同的數(shù)據(jù)庫管理系統(tǒng)可能包含不同的操作符,但都遵循數(shù)據(jù)庫的基本原理,一條SQL語句 中所包含的視圖和子查詢塊被處理為計劃樹中的一個子樹,且這些子樹通常以同一個操作 符作為根節(jié)點。計劃樹在很大程度上決定了一個數(shù)據(jù)庫管理系統(tǒng)執(zhí)行語句的效率,精簡計 劃樹可以有效地提高數(shù)據(jù)庫管理系統(tǒng)的性能。
[0003] 在現(xiàn)有技術(shù)中,數(shù)據(jù)庫管理系統(tǒng)在執(zhí)行與計劃樹對應的數(shù)據(jù)檢索操作時都采用了 同樣的技術(shù),即流水線機制。所述流水線機制,是指系統(tǒng)每次調(diào)用一個執(zhí)行節(jié)點,就從其下 的子節(jié)點獲取一條記錄或者一個空記錄而葉節(jié)點則直接對數(shù)據(jù)庫基表進行訪問操作。
[0004] 現(xiàn)有技術(shù)的主要缺陷在于:在計劃樹中由若干節(jié)點構(gòu)成的子樹重復出現(xiàn)時,由于 這些子樹返回的均是相同的記錄數(shù)據(jù),采用流水線機制時依舊需要逐條生成記錄并在子樹 中重復地傳輸相同的記錄數(shù)據(jù),這會造成極大的資源浪費。

【發(fā)明內(nèi)容】

[0005] 有鑒于此,本發(fā)明實施例提供一種面向數(shù)據(jù)庫管理系統(tǒng)的計劃樹優(yōu)化方法和裝 置,以減少相同的記錄數(shù)據(jù)的生成、處理以及在流水線中的傳輸,有效地提高數(shù)據(jù)庫管理系 統(tǒng)的性能。
[0006] 在第一方面,本發(fā)明實施例提供了一種面向數(shù)據(jù)庫管理系統(tǒng)的計劃樹優(yōu)化方法, 包括:
[0007] 根據(jù)計劃樹中的重復子樹,生成以TTAB節(jié)點為根節(jié)點的TTAB子樹,并獲取所述 TTAB子樹中TTAB節(jié)點的依賴關(guān)系;
[0008] 使用所述TTAB節(jié)點優(yōu)化所述計劃樹中的重復子樹,并建立與TTAB節(jié)點對應的 TTAB鏈表;
[0009] 根據(jù)所述TTAB節(jié)點的依賴關(guān)系,調(diào)整所述TTAB鏈表中TTAB節(jié)點的順序。
[0010] 在第二方面,本發(fā)明實施例還提供了一種面向數(shù)據(jù)庫管理系統(tǒng)的計劃樹優(yōu)化裝 置,包括:
[0011] TTAB子樹生成模塊,用于根據(jù)計劃樹中的重復子樹,生成以TTAB節(jié)點為根節(jié)點的 TTAB子樹,并獲取所述TTAB子樹中TTAB節(jié)點的依賴關(guān)系;
[0012] TTAB鏈表建立模塊,用于使用所述TTAB節(jié)點優(yōu)化所述計劃樹中的重復子樹,并建 立與TTAB節(jié)點對應的TTAB鏈表;
[0013] TTAB節(jié)點順序調(diào)整模塊,用于根據(jù)所述TTAB節(jié)點的依賴關(guān)系,調(diào)整所述TTAB鏈表 中TTAB節(jié)點的順序。
[0014] 本發(fā)明實施例通過根據(jù)計劃樹中的重復子樹,生成以TTAB節(jié)點為根節(jié)點的TTAB 子樹,并獲取所述TTAB子樹中TTAB節(jié)點的依賴關(guān)系;使用所述TTAB節(jié)點優(yōu)化所述計劃樹 中的重復子樹,并建立與TTAB節(jié)點對應的TTAB鏈表;根據(jù)所述TTAB節(jié)點的依賴關(guān)系,調(diào)整 所述TTAB鏈表中TTAB節(jié)點的順序的技術(shù)手段,解決了現(xiàn)有的流水線機制需要逐條生成記 錄并在子樹中重復地傳輸相同的記錄數(shù)據(jù),因而造成極大資源浪費的技術(shù)問題,實現(xiàn)了有 效地精簡了計劃樹,避免了相同子樹的重復計算處理,提高了數(shù)據(jù)庫管理系統(tǒng)的性能的技 術(shù)效果。
【附圖說明】
[0015] 圖1是本發(fā)明第一實施例的一種面向數(shù)據(jù)庫管理系統(tǒng)的計劃樹優(yōu)化方法的流程 圖;
[0016] 圖2是本發(fā)明第一實施例的一種計劃樹的結(jié)構(gòu)示意圖;
[0017] 圖3是本發(fā)明第一實施例的一種TTAB子樹的結(jié)構(gòu)不意圖;
[0018] 圖4是本發(fā)明第一實施例的一種描述TTAB節(jié)點之間依賴關(guān)系的示意圖;
[0019] 圖5是本發(fā)明第一實施例的一種使用TTAB節(jié)點優(yōu)化計劃樹的示意圖;
[0020]圖6是本發(fā)明第二實施例的一種面向數(shù)據(jù)庫管理系統(tǒng)的計劃樹優(yōu)化方法的流程 圖;
[0021] 圖7是本發(fā)明第二實施例的一種建立與TTAB節(jié)點對應的TTAB鏈表的實現(xiàn)示意 圖;
[0022] 圖8是本發(fā)明第三實施例的一種面向數(shù)據(jù)庫管理系統(tǒng)的計劃樹優(yōu)化方法的流程 圖;
[0023] 圖9是本發(fā)明第三實施例的一種TTAB鏈表調(diào)整順序的示意圖;
[0024] 圖10是本發(fā)明第四實施例的一種面向數(shù)據(jù)庫管理系統(tǒng)的計劃樹優(yōu)化裝置的結(jié)構(gòu) 圖。
【具體實施方式】
[0025] 為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖對本發(fā)明具體實 施例作進一步的詳細描述??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋本發(fā)明, 而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān) 的部分而非全部內(nèi)容。
[0026] 第一實施例
[0027] 圖1是本發(fā)明第一實施例的一種面向數(shù)據(jù)庫管理系統(tǒng)的計劃樹優(yōu)化方法的流程 圖,本實施例的方法可以由面向數(shù)據(jù)庫管理系統(tǒng)的計劃樹優(yōu)化裝置來執(zhí)行,該裝置可通過 硬件和/或軟件的方式實現(xiàn),一般可集成于用于提供計劃樹優(yōu)化服務的服務器中。本實施 例的方法具體包括如下操作:
[0028] 110、根據(jù)計劃樹中的重復子樹,生成以TTAB(鏈表樹)節(jié)點為根節(jié)點的TTAB子 樹,并獲取所述TTAB子樹中TTAB節(jié)點的依賴關(guān)系。
[0029] 在本實施例中,服務器根據(jù)計劃樹中的重復子樹,生成以TTAB節(jié)點為根節(jié)點的 TTAB子樹,并獲取所述TTAB子樹中TTAB節(jié)點的依賴關(guān)系。
[0030] 在本實施例中,計劃樹是指根據(jù)用戶輸入的SQL語言生成的,由各種執(zhí)行操作符 作為節(jié)點的樹狀結(jié)構(gòu)。其中,在圖2中示出了一種計劃樹的結(jié)構(gòu)示意圖。
[0031] 計劃樹中的重復子樹,具體是指以所述計劃樹中的一個節(jié)點作為根節(jié)點的至少兩 個相等樹。所謂相等樹具體是指所有對應節(jié)點上的屬性均相等的子樹。如圖2所示,子樹 21和子樹22為所述計劃樹中的重復子樹。
[0032] 在本實施例中,獲取計劃樹中的全部重復子樹后,為每一個重復子樹增加一個 TTAB節(jié)點作為根節(jié)點,即可生成TTAB子樹。換句話說,TTAB子樹為根節(jié)點為TTAB節(jié)點的 一個子樹;重復子樹為根節(jié)點為P (計劃樹中的一個具體節(jié)點)的一個子樹,在重復子樹中 增加 TTAB節(jié)點的根節(jié)點就變成TTAB子樹,反過來,TTAB子樹去掉TTAB根節(jié)點就變回成一 個重復子樹。
[0033] 在圖2所示的計劃樹中,共有7個重復子樹。其中,搜集重復子樹的過程可以使用 各種已知算法和數(shù)據(jù)結(jié)構(gòu)實現(xiàn),不再贅述。對這7個重復子樹加上不同的TTAB根節(jié)點,就 變?yōu)?個TTAB子樹。在圖3中示出了上述7個重復子樹,及其對應的7個TTAB子樹,其中 的Tn,n e [1,7]表示不同的TTAB根節(jié)點。
[0034] 在本實施例中,服務器在生成以TTAB節(jié)點為根節(jié)點的TTAB子樹之后,還獲取所述 TTAB子樹中各個TTAB節(jié)點的依賴關(guān)系。
[0035] 其中,如果第一重復子樹是第二重復子樹的子樹,那么表示第二重復子樹的根節(jié) 點依賴第一重復子樹的根節(jié)點。具體的,如圖3所示,以T2為根節(jié)點的重復子樹是以Tl 為根節(jié)點的重復子樹的子樹,則可確定Tl依賴于T2。其中,在圖4中示出了計劃樹中各個 TTAB節(jié)點的依賴關(guān)系。
[0036] 120、使用所述TTAB節(jié)點優(yōu)化所述計劃樹中的重復子樹,并建立與TTAB節(jié)點對應 的TTAB鏈表。
[0037] 在本實施例中,服務器使用所述TTAB節(jié)點優(yōu)化所述計劃樹中的重復子樹,并建立 與TTAB節(jié)點對應的TTAB鏈表。
[0038] 其中,通過使用所述TTAB節(jié)點代替所述計劃樹中的重復子樹,可以實現(xiàn)對所述計 劃樹中的重復子樹的優(yōu)化。在圖5中示出了一種使用TTAB節(jié)點代替所述計劃樹中的重復 子樹。
[0039] 在本實施例中,在使用所述TTAB節(jié)點優(yōu)化所述計劃樹中的重復子樹的同時,還要 建立與TTAB節(jié)點對應的TTAB鏈表。所述TTAB鏈表中存儲有各個TTAB節(jié)點。
[0040] 其中,所述TTAB鏈表可以在使用TTAB節(jié)點優(yōu)化計劃樹的同時,同步建立,也可以 在用TTAB節(jié)點優(yōu)化計劃樹之后,根據(jù)優(yōu)化后的計劃樹中包括的TTAB節(jié)點建立,對此并不進 行限制。
[0041] 130、根據(jù)所述TTAB節(jié)點的依賴關(guān)系,調(diào)整所述TTAB鏈表中TTAB節(jié)點的順序。
[0042] 在本實施例中,服務器根據(jù)所述TTAB節(jié)點的依賴關(guān)系,調(diào)整所述TTAB鏈表中TTAB 節(jié)點的順序。
[0043] 其中,TTAB鏈表中TTAB節(jié)點順序的調(diào)整為了保證一個TTAB節(jié)點所依賴的全部 TTAB節(jié)點排在該TTAB節(jié)點之前。這樣設置的原因是:保證了在計劃樹的執(zhí)行過程中,被依 賴的TTAB節(jié)點的計算被優(yōu)先處理,確保了計劃樹的順利執(zhí)行。
[0044] 本發(fā)明實施例通過根據(jù)計劃樹中的重復子樹,生成以TTAB節(jié)點為根節(jié)點的TTAB 子樹,并獲取所述TTAB子樹中TTAB節(jié)點的依賴關(guān)系;使用所述TTAB節(jié)點優(yōu)化所述計劃樹 中的重復子樹,并建立與TTAB節(jié)點對應的TTAB鏈表;根據(jù)所述TTAB節(jié)點的依賴關(guān)系,調(diào)整 所述TTAB鏈表
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1