本發明專利技術提供一種查詢語句優化裝置,包括:查詢定位模塊,獲取所述原始查詢語句中的外部查詢和子查詢;查詢合并模塊,將所述外部查詢和所述子查詢合并為新外部查詢;查詢語句生成模塊,根據所述新外部查詢,生成新查詢語句。相應地,本發明專利技術還提供一種查詢語句優化方法。應用本技術方案,根據外部查詢和子查詢,可以比較各個查詢的字段信息,進而判斷出哪些字段為冗余字段,進而將冗余字段過濾掉,提高SQL語句的執行效率,同時,將外部查詢和子查詢進行合并操作,去掉嵌套子查詢,以實現展平、精簡SQL語句的目的。
【技術實現步驟摘要】
本專利技術涉及數據庫查詢領域,具體而言,涉及一種查詢語句優化裝置和一種查詢語句優化方法。
技術介紹
如今,數據庫已成為一個成熟軟件系統中不可或缺的必要組成部分,而對數據庫的查詢操作,則是數據庫系統中,最簡單,最 常用的操作。但是隨著企業業務復雜度的不斷提高,對數據庫的查詢操作也變得越來越復雜,這就需要編寫更加復雜的數據庫查詢語句,即SQL語句,來訪問數據庫。常見的復雜SQL語句一般都包含嵌套子查詢,簡單的只嵌套一層,復雜的將會嵌套好幾層。嵌套子查詢能解決一些復雜的業務需求,但是很多時候,子查詢會包含一些冗余的字段信息,即在查詢中沒有必要出現的字段信息,這樣在執行查詢時,就會影響執行效率。現有的技術優化了表的關聯關系,和邏輯關系,但沒有優化嵌套子查詢,即主從表的嵌套關系,不能從根本上解決SQL語句執行上的效率問題。因此,需要一種新的技術方案,將SQL語句子查詢中的冗余字段信息過濾掉,將復雜SQL語句優化展平,從而提高SQL語句的執行效率。
技術實現思路
本專利技術所要解決的技術問題在于,提供一種新的技術方案,將SQL語句子查詢中的冗余字段信息過濾掉,將復雜SQL語句優化展平,從而提高SQL語句的執行效率。有鑒于此,本專利技術提供一種查詢語句優化裝置,包括查詢定位模塊,獲取所述原始查詢語句中的外部查詢和子查詢;查詢合并模塊,將所述外部查詢和所述子查詢合并為新外部查詢;查詢語句生成模塊,根據所述新外部查詢,生成新查詢語句。應用本技術方案,可以定位至查詢語句中的外部查詢和子查詢,從而將外部查詢和子查詢進行合并操作,去掉嵌套子查詢,以實現展平、精簡SQL語句的目的。在上述技術方案中,優選地,所述查詢定位模塊從所述原始查詢語句中檢索特定字符串,并根據檢索到的首個特定字符串獲取所述外部查詢,根據檢索到的其他特定字符串確定所述子查詢。應用本技術方案,根據檢索到的特定字符串的不同,獲取到外部查詢和子查詢。在上述技術方案中,優選地,還包括冗余字段過濾模塊,獲取所述外部查詢對應的第一查詢字段和所述子查詢對應的第二查詢字段,過濾掉所述第二查詢字段中未包含在所述第一查詢字段中的字段,所述查詢合并模塊還根據所述第一查詢字段和經過濾后的所述第二查詢字段,確定所述新外部查詢對應的查詢字段,所述查詢語句生成模塊根據所述新外部查詢以及所述新外部查詢的查詢字段,生成所述新查詢語句。應用本技術方案,對比外部查詢和子查詢的信息,可以將冗余字段過濾掉,生成精簡的查詢語句,從而提高SQL語句的執行效率。在上述技術方案中,優選地,還包括腳本對象化模塊,生成所述外部查詢和所述子查詢的對象,所述查詢合并模塊將所述外部查詢和所述子查詢的對象合并為新外部查詢的對象;對象腳本化模塊,根據所述新外部查詢的對象處理生成腳本,所述查詢語句生成模塊將所述腳本作為所述新查詢語句。應用本技術方案,通過腳本對象化、對象腳本化的操作,將原始的SQL語句加載到內存中進行處理,以及將新的查詢對象導出給優化的SQL語句。在上述技術方案中,優選地,還包括語法校驗模塊,對所述新查詢語句進行語法校驗,并在校驗成功時輸出所述新查詢語句,在校驗失敗時輸出異常提示。應用本技術方案,新的查詢語句在語法校驗成功時,進行展平輸出,在語法校驗失敗時,輸出異常提示,從而確保展平后語句的正確性。本專利技術還提供了一種查詢語句優化方法,包括步驟202,獲取所述原始查詢語句中的外部查詢和子查詢;步驟204,將所述外部查詢和所述子查詢合并為新外部查詢;步驟206,根據所述新外部查詢,生成新查詢語句。應用本技術方案,可以定位至查詢語句中的外部查詢和子查詢,從而將外部查詢和子查詢進行合并操作,去掉嵌套子查詢,以實現展平、精簡SQL語句的目的。 在上述技術方案中,優選地,所述步驟202包括從所述原始查詢語句中檢索特定字符串,并根據檢索到的首個特定字符串獲取所述外部查詢,根據檢索到的其他特定字符串確定所述子查詢。應用本技術方案,根據檢索到的特定字符串的不同,獲取到外部查詢和子查詢。在上述技術方案中,優選地,還包括獲取所述外部查詢對應的第一查詢字段和所述子查詢對應的第二查詢字段,過濾掉所述第二查詢字段中未包含在所述第一查詢字段中的字段;所述步驟204還包括根據所述第一查詢字段和經過濾后的所述第二查詢字段,確定所述新外部查詢對應的查詢字段;步驟206包括根據所述新外部查詢以及所述新外部查詢的查詢字段,生成所述新查詢語句。應用本技術方案,對比外部查詢和子查詢的信息,可以將冗余字段過濾掉,生成精簡的查詢語句,從而提高SQL語句的執行效率。在上述技術方案中,優選地,所述步驟202還包括生成所述外部查詢和所述子查詢的對象;所述步驟204包括將所述外部查詢和所述子查詢的對象合并為新外部查詢的對象;所述步驟206包括根據所述新外部查詢的對象處理生成腳本,并將所述腳本作為所述新查詢語句。應用本技術方案,通過腳本對象化、對象腳本化的操作,將原始的SQL語句加載到內存中進行處理,以及將新的查詢對象導出給優化的SQL語句。在上述技術方案中,優選地,還包括對所述新查詢語句進行語法校驗,并在校驗成功時輸出所述新查詢語句,在校驗失敗時輸出異常提示。應用本技術方案,新的查詢語句在語法校驗成功時,進行展平輸出,在語法校驗失敗時,輸出異常提示,從而確保展平后語句的正確性。附圖說明圖I示出了根據本專利技術的實施例的查詢語句優化裝置框圖;圖2示出了根據本專利技術的實施例的查詢語句優化方法的流程圖;圖3示出了根據本專利技術的實施例的查詢語句優化的流程圖;圖4示出了根據本專利技術的實施例的查詢語句優化模塊框圖5示出了根據本專利技術的實施例的SQL腳本對象化結構圖;圖6示出了根據本專利技術的實施例的SQL對象腳本化流程圖。具體實施例方式為了能夠更清楚地理解本專利技術的上述目的、特征和優點,下面結合附圖和具體實施方式對本專利技術進行進一步的詳細描述。在下面的描述中闡述了很多具體細節以便于充分理解本專利技術,但是,本專利技術還可以采用其他不同于在此描述的其他方式來實施,因此,本專利技術并不限于下面公開的具體實施例的限制。圖I示出了根據本專利技術的實施例的查詢語句優化裝置框圖。如圖I所示,本專利技術的查詢語句優化裝置100包括查詢定位模塊102,獲取所述·原始查詢語句中的外部查詢和子查詢;查詢合并模塊104,將所述外部查詢和所述子查詢合并為新外部查詢;查詢語句生成模塊106,根據所述新外部查詢,生成新查詢語句。應用本技術方案,可以定位至查詢語句中的外部查詢和子查詢,從而將外部查詢和子查詢進行合并操作,去掉嵌套子查詢,以實現展平、精簡SQL語句的目的。在上述技術方案中,優選地,所述查詢定位模塊102從所述原始查詢語句中檢索特定字符串,并根據檢索到的首個特定字符串獲取所述外部查詢,根據檢索到的其他特定字符串確定所述子查詢。應用本技術方案,根據檢索到的特定字符串的不同,獲取到外部查詢和子查詢。在上述技術方案中,優選地,還包括冗余字段過濾模塊108,獲取所述外部查詢對應的第一查詢字段和所述子查詢對應的第二查詢字段,過濾掉所述第二查詢字段中未包含在所述第一查詢字段中的字段,所述查詢合并模塊104還根據所述第一查詢字段和經過濾后的所述第二查詢字段,確定所述新外部查詢對應的查詢字段,所述查詢語句生成模塊106根據所述新外部查詢以及所述新外部查詢本文檔來自技高網...
【技術保護點】
一種查詢語句優化裝置,其特征在于,包括:查詢定位模塊,獲取所述原始查詢語句中的外部查詢和子查詢;查詢合并模塊,將所述外部查詢和所述子查詢合并為新外部查詢;查詢語句生成模塊,根據所述新外部查詢,生成新查詢語句。
【技術特征摘要】
1.一種查詢語句優化裝置,其特征在于,包括 查詢定位模塊,獲取所述原始查詢語句中的外部查詢和子查詢; 查詢合并模塊,將所述外部查詢和所述子查詢合并為新外部查詢; 查詢語句生成模塊,根據所述新外部查詢,生成新查詢語句。2.根據權利要求I所述的查詢語句優化裝置,其特征在于,所述查詢定位模塊從所述原始查詢語句中檢索特定字符串,并根據檢索到的首個特定字符串獲取所述外部查詢,根據檢索到的其他特定字符串確定所述子查詢。3.根據權利要求I所述的查詢語句優化裝置,其特征在于,還包括 冗余字段過濾模塊,獲取所述外部查詢對應的第一查詢字段和所述子查詢對應的第二查詢字段,過濾掉所述第二查詢字段中未包含在所述第一查詢字段中的字段,所述查詢合并模塊還根據所述第一查詢字段和經過濾后的所述第二查詢字段,確定所述新外部查詢對應的查詢字段,所述查詢語句生成模塊根據所述新外部查詢以及所述新外部查詢的查詢字段,生成所述新查詢語句。4.根據權利要求I所述的查詢語句優化裝置,其特征在于,還包括 腳本對象化模塊,生成所述外部查詢和所述子查詢的對象,所述查詢合并模塊將所述外部查詢和所述子查詢的對象合并為新外部查詢的對象; 對象腳本化模塊,根據所述新外部查詢的對象處理生成腳本,所述查詢語句生成模塊將所述腳本作為所述新查詢語句。5.根據權利要求I至4中任一項所述的查詢語句優化裝置,其特征在于,還包括 語法校驗模塊,對所述新查詢語句進行語法校驗,并在校驗成功時輸出所述新查詢語句,在校驗失敗...
【專利技術屬性】
技術研發人員:張一桐,
申請(專利權)人:用友軟件股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。