[發明專利]一種SQL優化方法、裝置、計算機設備及存儲介質有效
| 申請號: | 202011012194.9 | 申請日: | 2020-09-23 |
| 公開(公告)號: | CN112434003B | 公開(公告)日: | 2022-11-18 |
| 發明(設計)人: | 高仕進 | 申請(專利權)人: | 蘇寧云計算有限公司 |
| 主分類號: | G06F16/21 | 分類號: | G06F16/21;G06F16/242;G06F16/2453 |
| 代理公司: | 北京市萬慧達律師事務所 11111 | 代理人: | 段曉玲 |
| 地址: | 210000 江蘇省南*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 sql 優化 方法 裝置 計算機 設備 存儲 介質 | ||
本發明公開了一種SQL優化方法、裝置、計算機設備及存儲介質,該方法包括:解析SQL語句,識別SQL語句涉及的主表以及輔表;獲取主表和輔表在執行SQL語句對應的待優化SQL腳本的目標平臺上的記錄量;根據記錄量以及預設分類規則對主表以及輔表進行分類,獲取分類結果;根據預設優化規則以及分類結果對待優化SQL腳本進行優化處理,獲取優化后SQL腳本。本發明一方面,通過分析待優化SQL腳本的執行計劃,智能化重新組裝優化SQL腳本,格式化輸出規范的優化后的SQL腳本,提高腳本的可讀性,另一方面,可以為開發人員節省出大量的時間和精力,獲取高質量專家級的SQL語句,極大的減少人力成本。
技術領域
本發明涉及數據庫技術領域,特別涉及一種SQL優化方法、裝置、計算機設備及存儲介質。
背景技術
目前網上各種HIVE SQL優化的經驗分享與總結五花八門,但是行業內暫無HIVESQL自動優化的工具。
由于每個開發人員理解和能力不同,因此不同開發人員寫的HIVE SQL執行計劃的差異也會很大。一方面,對于同一條件下的SQL語句寫法有很多,其中一些寫法往往會對性能產生很大影響;另一方面,由于不同開發人員寫出的代碼風格不同,導致代碼的可讀性差異很大。
因此,亟需提出一種新的SQL優化方法。
發明內容
為了解決現有技術的問題,本發明實施例提供了一種SQL優化方法、裝置、計算機設備以及存儲介質,以克服現有技術中存在的不規范寫法的SQL語句的性能較差以及SQL腳本的可讀性差等問題。
為解決上述一個或多個技術問題,本發明采用的技術方案是:
第一方面,提供了一種SQL優化方法,該方法包括如下步驟:
解析SQL語句,識別所述SQL語句涉及的主表以及輔表;
獲取所述主表和所述輔表在執行所述SQL語句對應的待優化SQL腳本的目標平臺上的記錄量;
根據所述記錄量以及預設分類規則對所述主表以及所述輔表進行分類,獲取分類結果;
根據預設優化規則以及所述分類結果對所述待優化SQL腳本進行優化處理,獲取優化后SQL腳本。
進一步的,所述根據所述記錄量以及預設分類規則對所述主表以及所述輔表進行分類,獲取分類結果包括:
判斷所述主表或所述輔表的所述記錄量是否超過預設閾值,若是,則將所述主表或所述輔表確定為大表,否則將所述主表或所述輔表確定為直接小表;
利用子查詢將與確定為大表的所述輔表所關聯的表根據關聯字段進行去重,將去重后的表與確定為大表的所述輔表內關聯,重新統計關聯后的記錄量,判斷所述關聯后的記錄量是否超過預設閾值,若未超過,則將所述輔表確定為間接小表。
進一步的,所述根據預設優化規則以及所述分類結果對所述待優化SQL腳本進行優化處理,獲取優化后SQL腳本至少包括:
利用子查詢將與所述間接小表所關聯的表根據關聯字段進行去重,將去重后的表與所述間接小表內關聯,生成第一臨時表。
進一步的,所述根據預設優化規則以及所述分類結果對所述待優化SQL腳本進行優化處理,獲取優化后SQL腳本至少包括:
識別所述大表中重復掃描的目標大表,從所述SQL語句的解析結果中獲取目標字段與過濾條件,根據所述目標字段和所述過濾條件從所述目標大表中獲取目標數據,生成第二臨時表,以便后續使用所述第二臨時表代替所述目標大表進行相關操作。
進一步的,所述根據預設優化規則以及所述分類結果對所述待優化SQL腳本進行優化處理,獲取優化后SQL腳本至少包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于蘇寧云計算有限公司,未經蘇寧云計算有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011012194.9/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:整盤電纜導體的長度截面判定方法
- 下一篇:一種增強型有機管式膜制備方法





