1.一種由數(shù)據(jù)庫處理系統(tǒng)進行多查詢的亂序(out of order,OOO)執(zhí)行的方法,其特征在于,所述方法包括:
在編譯過程時,檢測多個語句即數(shù)據(jù)庫查詢語言語句之間的依賴關系;
在依賴關系表中保持所述語句的依賴關系;
在執(zhí)行所述過程時,檢測所述語句之間依賴關系的變化;
當檢測到所述依賴關系的變化時,在所述依賴關系表中更新所述依賴關系;
根據(jù)所述依賴關系表對所述語句進行調(diào)度以進行OOO執(zhí)行。
2.根據(jù)權利要求1所述的方法,其特征在于,所述根據(jù)所述依賴關系表對所述語句進行調(diào)度以進行OOO執(zhí)行包括:在無需等待第一語句執(zhí)行完成時調(diào)度第二語句以進行執(zhí)行其中,按照所述依賴關系表,在所述過程中,所述第二語句跟隨所述第一語句之后,并且獨立于所述第一語句。
3.根據(jù)權利要求2所述的方法,其特征在于,所述調(diào)度第二語句以進行執(zhí)行還包括:
比較在所述第一語句執(zhí)行完成前執(zhí)行所述第二語句的成本;
當根據(jù)所述成本確定OOO執(zhí)行所述第二語句有益時,在所述第一語句執(zhí)行完成前執(zhí)行所述第二語句。
4.根據(jù)權利要求1至3中任意一項所述的方法,其特征在于,檢測所述語句之間的所述依賴關系包括:
在編譯所述過程時,確定執(zhí)行所述語句中每個語句的成本;
當確定語句的成本超過預定義的閾值時,對所述語句進行依賴關系分析。
5.根據(jù)權利要求4所述的方法,其特征在于,所述對所述語句進行依賴關系分析包括:
將所述語句的每個讀入對象加入讀入集;
將所述語句的每個寫入對象加入寫入集;
將所述語句的所述讀入集和所述寫入集插入所述依賴關系表中的相應條目中。
6.根據(jù)權利要求1至3中的任意一項所述的方法,其特征在于,檢測所述語句之間的所述依賴關系包括:檢測執(zhí)行第一語句是否會影響在所述過程中跟隨所述第一語句之后的所述第二語句的執(zhí)行。
7.根據(jù)權利要求1至6中任意一項所述的方法,其特征在于,所述語句包括由一個查詢分成的多個查詢片段。
8.根據(jù)權利要求7所述的方法,其特征在于,還包括:在編譯時,當檢測到實用命令時,插入界限來標記查詢樹的相應片段。
9.根據(jù)權利要求8所述的方法,其特征在于,對于每個語句,在執(zhí)行所述過程時,根據(jù)所述表中所述語句的依賴關系信息確定所述第二語句的OOO執(zhí)行,而不越過所述界限對語句進行調(diào)度執(zhí)行。
10.根據(jù)權利要求1至9中的任意一項所述的方法,其特征在于,檢測所述語句之間的所述依賴關系包括:在所述語句中識別每個讀入對象、寫入對象、對象粒度、根據(jù)所述語句的執(zhí)行結果的隱式數(shù)據(jù)庫依賴關系以及查詢粒度。
11.一種支持多查詢亂序(out of order,OOO)執(zhí)行的數(shù)據(jù)庫系統(tǒng)的處理組件,其特征在于,所述處理組件包括:
至少一個處理器;
非瞬時性計算機可讀存儲介質(zhì),用于存儲由所述至少一個處理器執(zhí)行的程序,其中,所述程序包括指令,用于:
在編譯過程時,檢測多個語句即數(shù)據(jù)庫查詢語言語句之間的依賴關系;
在依賴關系表中保持所述語句的依賴關系;
在執(zhí)行所述過程時,檢測所述語句之間依賴關系的變化;
當檢測到所述依賴關系的變化時,在所述依賴關系表中更新所述依賴關系;
根據(jù)所述依賴關系表對所述語句進行調(diào)度以進行OOO執(zhí)行。
12.根據(jù)權利要求11所述的處理組件,其特征在于,用于根據(jù)所述依賴關系表對所述語句進行調(diào)度以進行OOO執(zhí)行的指令包括:用于在無需等待第一語句執(zhí)行完成時調(diào)度第二語句以進行執(zhí)行的指令。
13.根據(jù)權利要求12所述的處理組件,其特征在于,在所述過程中所述第二語句跟隨所述第一語句之后,并且獨立于所述第一語句。
14.根據(jù)權利要求11至13中任意一項所述的處理組件,其特征在于,檢測所述語句之間的所述依賴關系的所述指令包括:用于執(zhí)行以下操作的指令:
在編譯所述過程時,確定執(zhí)行所述語句中每個語句的成本;
當確定語句的成本超過預定義的閾值時,對所述語句進行依賴關系分析。
15.根據(jù)權利要求14所述的處理組件,其特征在于,對所述語句進行依賴關系分析的所述指令包括:用于執(zhí)行以下操作的指令:
將所述語句的每個讀入對象加入讀入集;
將所述語句的每個寫入對象加入寫入集;
將所述語句的所述讀入集和所述寫入集插入所述依賴關系表中的相應條目中。
16.一種計算機可讀介質(zhì),用于存儲指令的計算機程序,其中,當處理系統(tǒng)執(zhí)行所述指令時,所述指令使所述系統(tǒng)執(zhí)行權利要求1至10中任意一項所述的方法。
17.一種數(shù)據(jù)庫處理系統(tǒng)的處理組件,其特征在于,包括:
用于在編譯過程時,檢測多個語句即數(shù)據(jù)庫查詢語言語句之間的依賴關系的構件;
用于在依賴關系表中保持所述語句的依賴關系的構件;
用于在執(zhí)行所述過程時,檢測所述語句之間依賴關系的變化的構件;
用于當檢測到所述依賴關系的變化時,在所述依賴關系表中更新所述依賴關系的構件;
用于根據(jù)所述依賴關系表對所述語句進行調(diào)度以進行OOO執(zhí)行的構件。
18.一種由數(shù)據(jù)庫處理系統(tǒng)多查詢亂序(out of order,OOO)執(zhí)行的方法,其特征在于,所述方法包括:
創(chuàng)建依賴關系分析表;
在編譯過程時,檢測包括多個語句的查詢樹中的語句依賴關系;
根據(jù)所述語句依賴關系在所述表中插入所述語句的依賴關系信息;
在執(zhí)行所述過程時,對于每個語句,根據(jù)所述表中所述語句的所述依賴關系信息確定是否進行第二語句的OOO執(zhí)行;
在執(zhí)行每個語句時,在所述表中更新所述語句的依賴關系信息和依賴于所述語句的每個其他語句的依賴關系信息。
19.根據(jù)權利要求18所述的方法,其特征在于,所述對于每個語句,確定是否進行第二語句的OOO執(zhí)行包括:當在所述表中檢測出所述第二語句不依賴于所述語句時,調(diào)度所述第二語句以進行執(zhí)行,而不用等待所述語句執(zhí)行完成。
20.根據(jù)權利要求19所述的方法,其特征在于,所述第二語句在所述查詢樹中跟隨所述語句之后。
21.根據(jù)權利要求18所述的方法,其特征在于,所述表包括:每個語句的條目,其中所述條目包括標識符、讀入集和寫入集,其中,根據(jù)所述讀入集和所述寫入集檢測所述語句依賴關系,從而確定所述語句相對于另一語句的依賴關系信息。
22.根據(jù)權利要求21所述的方法,其特征在于,還包括:
將所述查詢樹的每個葉子節(jié)點語句的參數(shù)插入到與所述表中的葉子節(jié)點語句對應的條目的讀入集中;
將所述葉子節(jié)點的每個目的節(jié)點,包括每個觸發(fā)器,插入到所述條目中的寫入集中。
23.根據(jù)權利要求18所述的方法,其特征在于,還包括:在編譯時,當檢測到實用命令時,插入界限來標記所述查詢樹的相應片段。
24.根據(jù)權利要求23所述的方法,其特征在于,在執(zhí)行所述過程時,對于每個語句,根據(jù)所述表中所述語句的所述依賴關系信息確定所述第二語句的OOO執(zhí)行,而不越過所述界限對語句進行調(diào)度執(zhí)行。
25.一種計算機可讀介質(zhì),用于存儲指令的計算機程序,其中,當處理系統(tǒng)執(zhí)行所述指令時,所述指令使所述系統(tǒng)執(zhí)行權利要求17至24中任意一項所述的方法。
26.一種數(shù)據(jù)庫處理系統(tǒng),其特征在于,包括:處理系統(tǒng),用于:
創(chuàng)建依賴關系分析表;
在編譯過程時,檢測包括多個語句的查詢樹中的語句依賴關系;
根據(jù)所述語句依賴關系在所述表中插入所述語句的依賴關系信息;
在執(zhí)行所述過程時,對于每個語句,根據(jù)所述表中所述語句的所述依賴關系信息確定是否進行第二語句的OOO執(zhí)行;
在執(zhí)行每個語句時,在所述表中更新所述語句的依賴關系信息和依賴于所述語句的每個其他語句的依賴關系信息。