本技術涉及數(shù)據(jù)庫查詢優(yōu)化領域,具體涉及一種可解釋的數(shù)據(jù)庫查詢優(yōu)化方法。
背景技術:
1、在數(shù)據(jù)庫管理系統(tǒng)中,查詢優(yōu)化一直是其技術領域的核心要點。數(shù)據(jù)庫查詢優(yōu)化的核心目標是為給定的sql查詢選擇最佳的執(zhí)行計劃,以最小化查詢的執(zhí)行時間和資源消耗。傳統(tǒng)的查詢優(yōu)化器主要依賴于啟發(fā)式規(guī)則和代價模型。啟發(fā)式規(guī)則是基于數(shù)據(jù)庫專家的經(jīng)驗和知識制定的,用于指導查詢優(yōu)化器在搜索最優(yōu)查詢計劃時做出決策。代價模型則是用于估計不同查詢計劃的執(zhí)行成本,包括cpu時間、內存使用、磁盤i/o等,優(yōu)化器會根據(jù)代價模型預測的成本選擇成本最低的查詢計劃執(zhí)行。然而,啟發(fā)式規(guī)則在某些場景下會失效,代價模型的準確性依賴于統(tǒng)計信息的準確性和完整性。傳統(tǒng)的查詢優(yōu)化器雖然在很多情況下能夠提供良好的性能,但在面對復雜查詢和大數(shù)據(jù)量時,其優(yōu)化效果會受到限制。
2、近年來,人工智能發(fā)展迅速,通過引入機器學習、深度學習等技術進行查詢優(yōu)化,但是現(xiàn)階段仍有關鍵問題有待解決,具體表現(xiàn)為如下兩個方面:
3、1.機器學習模型的訓練成本高,導致數(shù)據(jù)庫執(zhí)行效率下降。機器學習訓練過程,需要大量訓練、測試集并投入大量的訓練時間。實際的數(shù)據(jù)庫應用場景難以為模型提供大量已知的數(shù)據(jù),且數(shù)據(jù)庫查詢對速度要求嚴格,大量模型專用訓練時間會嚴重降低查詢性能。
4、2.機器學習模型的預測結果缺乏可解釋性。盡管機器學習在規(guī)則總結和模式識別方面表現(xiàn)出色,但其“黑盒”特性使得無法解釋預測結果的決策依據(jù),專業(yè)人員也難以判斷預測結果的可信度。當優(yōu)化事故發(fā)生時,機器學習模型無法像傳統(tǒng)查詢優(yōu)化器那樣提供單條語句的執(zhí)行計劃或其他解釋信息,這使得從根本上改進優(yōu)化技術變得更加困難。
技術實現(xiàn)思路
1、本技術的目的是提供一種可解釋的數(shù)據(jù)庫查詢優(yōu)化方法,通過確定的最優(yōu)查詢計劃對數(shù)據(jù)庫進行查詢,能夠提高查詢的執(zhí)行效率和可信度。
2、為實現(xiàn)上述目的,本技術提供了如下方案:
3、第一方面,本技術提供了一種可解釋的數(shù)據(jù)庫查詢優(yōu)化方法,所述可解釋的數(shù)據(jù)庫查詢優(yōu)化方法包括:
4、基于遺傳規(guī)劃算法,構建隨機森林模型;
5、獲取待查詢的sql語句;
6、基于掃描方法和連接方法生成提示集,并根據(jù)所述提示集為每一個待查詢的sql語句生成查詢計劃集;
7、對所述查詢計劃集中的每個查詢計劃進行編碼,得到特征向量集;
8、將所述特征向量集輸入至所述隨機森林模型,輸出判斷規(guī)則集、特征重要性排名和預測執(zhí)行時間集;所述判斷規(guī)則集和所述特征重要性排名用于解釋所述預測執(zhí)行時間集;
9、將預測執(zhí)行時間集中的最小預測執(zhí)行時間對應的查詢計劃確定為最優(yōu)查詢計劃;
10、基于所述最優(yōu)查詢計劃,數(shù)據(jù)庫查詢引擎執(zhí)行查詢。
11、可選地,基于遺傳規(guī)劃算法,構建隨機森林模型,具體包括:
12、構建樣本數(shù)據(jù)集;所述樣本數(shù)據(jù)集包括樣本查詢sql語句集、樣本查詢sql語句集對應的樣本查詢計劃集和樣本執(zhí)行時間集;
13、對所述樣本查詢計劃集中的樣本查詢計劃進行編碼,得到樣本特征向量集;
14、對所述樣本特征向量集進行初始化,生成多個gp個體,得到樣本種群;
15、隨機選取所述樣本種群中的gp個體進行突變和交叉,得到第一種群;
16、采用交叉驗證方式,將所述樣本數(shù)據(jù)集分為訓練集和測試集;
17、基于所述訓練集,采用隨機構建的方式對第一種群中的每個gp個體進行構建,生成多個決策樹;一個gp個體對應一個決策樹;
18、基于所述測試集估計所有決策樹泛化損失,得到損失向量;
19、根據(jù)所述損失向量,采用lexicase選擇算子對所述決策樹進行選擇,得到最佳決策樹;
20、基于所述最佳決策樹構建隨機森林模型。
21、可選地,構建樣本數(shù)據(jù)集,具體包括:
22、獲取樣本查詢sql語句集;
23、通過數(shù)據(jù)庫查詢優(yōu)化器對所述樣本查詢sql語句集進行處理,生成樣本查詢計劃集;
24、通過數(shù)據(jù)庫查詢引擎對所述樣本查詢計劃集進行執(zhí)行,生成樣本執(zhí)行時間集。
25、可選地,對所述樣本查詢計劃集中的樣本查詢計劃進行編碼,得到樣本特征向量集,具體包括:
26、對所述樣本查詢計劃集中的每一個樣本查詢計劃中的結點進行遍歷,確定每一個樣本查詢計劃的特征指標;所述結點包括:單結點和雙層父子結點;所述特征指標包括:結點的數(shù)量、緩沖區(qū)度量值、執(zhí)行成本、檢索或返回的行數(shù);
27、對每一個所述樣本查詢計劃的特征指標進行累加,得到樣本特征向量;
28、匯總所有樣本查詢計劃的樣本特征向量,得到樣本特征向量集。
29、可選地,對所述樣本特征向量集進行初始化,生成多個gp個體,得到樣本種群,具體包括:
30、對所述樣本特征向量集中的樣本特征向量進行隨機選取,得到葉子結點;
31、對基礎運算符進行隨機選取,得到非葉子結點;
32、基于所述葉子結點和所述非葉子結點,生成多個gp個體,得到樣本種群。
33、可選地,基于所述測試集估計所有決策樹泛化損失,得到損失向量,具體包括:
34、基于所述測試集,采用交叉驗證方式對所述決策樹進行驗證,得到所述測試集對應的預測執(zhí)行時間;
35、根據(jù)所述測試集對應的預測執(zhí)行時間,采用絕對偏差和時間比的組合,得到多個損失二元組;所述多個損失二元組包括索引為0的損失和索引為1的損失;
36、對多個損失二元組進行拼接,得到損失向量。
37、可選地,根據(jù)所述損失向量,采用lexicase選擇算子對所述決策樹進行選擇,得到最佳決策樹,具體包括:
38、根據(jù)第一臨界值,對所述決策樹進行篩選,得到第一篩選結果;所述第一篩選結果為所述損失向量中的損失二元組的索引為0的損失小于第一臨界值的所述決策樹;判斷所述決策樹是否唯一;若是,則得到最佳決策樹;
39、若否,則根據(jù)第二臨界值,對所述第一篩選結果中的決策樹進行篩選,得到最佳決策樹;所述最佳決策樹為所述損失向量中的損失二元組的索引為1的損失小于第二臨界值的所述第一篩選結果中的決策樹。
40、可選地,在將預測執(zhí)行時間集中的最小預測執(zhí)行時間對應的查詢計劃確定為最優(yōu)查詢計劃之后,還包括:
41、通過數(shù)據(jù)庫查詢引擎對所述最優(yōu)查詢計劃進行執(zhí)行,生成最優(yōu)執(zhí)行時間;
42、基于所述待查詢的sql語句集、所述最優(yōu)查詢計劃集和所述最優(yōu)執(zhí)行時間集更新所述訓練數(shù)據(jù)集。
43、第二方面,本技術提供了一種可解釋的數(shù)據(jù)庫查詢優(yōu)化系統(tǒng),用于實現(xiàn)上述中任一項所述的可解釋的數(shù)據(jù)庫查詢優(yōu)化方法,所述可解釋的數(shù)據(jù)庫查詢優(yōu)化系統(tǒng),包括:
44、構建模塊,用于基于遺傳規(guī)劃算法,構建隨機森林模型;
45、獲取模塊,用于獲取待查詢的sql語句;
46、查詢計劃生成模塊,用于基于掃描方法和連接方法生成提示集,并根據(jù)所述提示集為每一個待查詢的sql語句生成查詢計劃集;
47、特征向量生成模塊,用于對所述查詢計劃集中的每個查詢計劃進行編碼,得到特征向量集;
48、解釋模塊,用于將所述特征向量集輸入至所述隨機森林模型,輸出判斷規(guī)則集、特征重要性排名和預測執(zhí)行時間集;所述判斷規(guī)則集和所述特征重要性排名用于解釋所述預測執(zhí)行時間集;
49、輸出模塊,將預測執(zhí)行時間集中的最小預測執(zhí)行時間對應的查詢計劃確定為最優(yōu)查詢計劃;
50、查詢模塊,基于所述最優(yōu)查詢計劃,數(shù)據(jù)庫查詢引擎執(zhí)行查詢。
51、可選地,所述可解釋的數(shù)據(jù)庫查詢優(yōu)化系統(tǒng),還包括:
52、訓練數(shù)據(jù)集更新模塊,用于通過數(shù)據(jù)庫查詢引擎對所述最優(yōu)查詢計劃進行執(zhí)行,生成最優(yōu)執(zhí)行時間;基于所述待查詢的待查詢的sql語句、所述最優(yōu)查詢計劃和所述最優(yōu)執(zhí)行時間更新訓練數(shù)據(jù)集。
53、根據(jù)本技術提供的具體實施例,本技術具有了以下技術效果:
54、(1)本技術采用遺傳規(guī)劃算法構造復雜特征生成隨機森林模型,用一維特征向量替代復雜結構的特征向量,用較小的模型替代復雜模型,有效減小訓練時間帶來的性能負擔,從而提高了模型執(zhí)行查詢的效率,同時,遺傳規(guī)劃算法組合復雜特征顯著增強模型預測準確性。
55、(2)本技術將特征向量集輸入隨機森林模型,輸出判斷規(guī)則集、特征重要性排名和預測執(zhí)行時間集,在隨機森林模型輸出預測執(zhí)行時間集的同時,輸出隨機森林模型進行預測時的判斷規(guī)則集,以及特征向量集的特征重要性排名,使得在輸出預測執(zhí)行時間集結果的同時,能夠輸出預測執(zhí)行時間集結果的決策,從而增強了預測結果的可解釋性,提高了決策的可信度。