[發明專利]一種SQL存儲過程腳本優化的方法及裝置在審
| 申請號: | 202010572972.3 | 申請日: | 2020-06-22 |
| 公開(公告)號: | CN111737280A | 公開(公告)日: | 2020-10-02 |
| 發明(設計)人: | 王志翔 | 申請(專利權)人: | 中國銀行股份有限公司 |
| 主分類號: | G06F16/242 | 分類號: | G06F16/242;G06F8/30 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 柳虹 |
| 地址: | 100818 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 sql 存儲 過程 腳本 優化 方法 裝置 | ||
本申請實施例提供了一種SQL存儲過程腳本的優化方法及裝置,包括對待優化的SQL存儲過程腳本進行逐層分解,得到多個子腳本模塊,每個子腳本模塊可以對應至少一個功能,確定SQL存儲過程腳本中重復的子腳本模塊,在SQL存儲過程腳本中增加將子腳本模塊賦值為對應的全局變量的語句,并將子腳本模塊替換為對應的全局變量,得到優化后的SQL存儲過程腳本。也就是說,SQL存儲過程腳本中重復的語句被替換為全局變量,而全局變量被賦值為原來的語句,這樣減少了SQL存儲過程腳本中冗余的重復的語句,實現腳本的簡化,而在腳本的執行過程中,也無需根據重復的語句執行重復的動作,而是通過調用的方式減少需要執行的操作,從而減少腳本的執行時間,減少系統反應時間。
技術領域
本申請涉及計算機領域,尤其涉及一種SQL存儲過程腳本優化的方法及裝置。
背景技術
結構化查詢語言(Structured Query Language,SQL)是一種特殊目的的編程語言,是一種數據查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統,SQL存儲過程(Stored Procedure)是在大型數據庫系統中為完成特定功能的SQL語句集,它可以存儲在數據庫中,用戶可以通過制定存儲過程的名字來執行該存儲過程。
SQL存儲過程在各種代碼開發中隨處可見,尤其是報表等取數/計算復雜的邏輯系統的場景中,SQL的執行時間和性能直接決定了系統的反應時間,也很大程度決定了用戶的體驗度。現有系統開發過程中,對SQL的編寫因開發的熟練度不同,很多系統中實際運行的SQL存儲過程復雜度較高,導致系統反應時間長,甚至運行超時導致報錯,嚴重影響用戶體驗。
發明內容
為了解決現有技術存在的上述技術問題,本申請提供了一種SQL存儲過程腳本的優化方法及裝置,實現了腳本的簡化,減少了腳本運行的時間,減少系統反應時間,提高用戶體驗。
本申請提供了一種SQL存儲過程腳本的優化方法,其特征在于,包括:
對待優化的SQL存儲過程腳本進行逐層分解,得到多個子腳本模塊;每個所述子腳本模塊對應至少一個功能;
確定所述SQL存儲過程腳本中重復的子腳本模塊;
在所述SQL存儲過程腳本中增加將所述子腳本模塊賦值給對應的全局變量的語句,并將所述子腳本模塊替換為對應的全局變量,得到優化后的SQL存儲過程腳本。
可選的,所述將所述子腳本模塊賦值給對應的全局變量的語句,用于在所述SQL存儲過程腳本被調用時,將所述子腳本模塊的執行結果賦值為對應的全局變量。
可選的,將所述全局變量的值存儲在緩存中。
可選的,所述子腳本模塊對應增加、刪除、插入、修改、查找中的至少一個功能。
可選的,所述方法還包括:
基于預設規則,對所述子腳本模塊進行檢查,得到優化提醒。
可選的,所述方法還包括:
對所述優化后的SQL存儲過程腳本進行驗證。
本申請實施例還提供了一種SQL存儲過程腳本的優化裝置,包括:
腳本分解單元,用于對待優化的SQL存儲過程腳本進行逐層分解,得到多個子腳本模塊;每個所述子腳本模塊對應至少一個功能;
模塊確定單元,用于確定所述SQL存儲過程腳本中重復的子腳本模塊;
腳本優化單元,用于在所述SQL存儲過程腳本中增加將所述子腳本模塊賦值給對應的全局變量的語句,并將所述子腳本模塊替換為對應的全局變量,得到優化后的SQL存儲過程腳本。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國銀行股份有限公司,未經中國銀行股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010572972.3/2.html,轉載請聲明來源鉆瓜專利網。





