[發(fā)明專利]一種基于SQL語義可擴展的性能診斷調(diào)優(yōu)方法在審
| 申請?zhí)枺?/td> | 201611179242.7 | 申請日: | 2016-12-19 |
| 公開(公告)號: | CN106598862A | 公開(公告)日: | 2017-04-26 |
| 發(fā)明(設(shè)計)人: | 王召冠 | 申請(專利權(quán))人: | 濟南浪潮高新科技投資發(fā)展有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 濟南信達(dá)專利事務(wù)所有限公司37100 | 代理人: | 孟峣 |
| 地址: | 250100 山東省濟南市*** | 國省代碼: | 山東;37 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 sql 語義 擴展 性能 診斷 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體地說是一種基于SQL語義可擴展的性能診斷調(diào)優(yōu)方法。
背景技術(shù)
隨著社會信息化進程的發(fā)展,現(xiàn)代IT系統(tǒng)業(yè)務(wù)及技術(shù)架構(gòu)越來越復(fù)雜,系統(tǒng)規(guī)模越來越龐大,尤其是為了適應(yīng)業(yè)務(wù)的靈活性,很多功能是通過配置、適配、二次開發(fā)等多樣化的方式產(chǎn)生的,在這種情況下,原有系統(tǒng)的數(shù)據(jù)分布會出現(xiàn)較大的傾斜,默認(rèn)索引的合理性往往會顯得不足,甚至在特殊場景下會起到負(fù)面的作用。而單一模塊開發(fā)人員對某一數(shù)據(jù)表的訪問方式缺乏全面的了解,對數(shù)據(jù)庫內(nèi)部的運行機制存在認(rèn)識片面的問題,面對壓力測試和生產(chǎn)環(huán)境的性能問題往往不知如何下手。
如何提供一種曲線平滑的方式,達(dá)到性能問題的識別,診斷,分析乃至解決的方法,是現(xiàn)代IT系統(tǒng)新的挑戰(zhàn)。我們希望總結(jié)一套具有可操作性的分析方法及工具來生成推薦的索引調(diào)整和優(yōu)化建議,降低系統(tǒng)優(yōu)化的門檻與成本,提高數(shù)據(jù)庫系統(tǒng)的性能與運行效率。
基于此,現(xiàn)提供一種基于SQL語義可擴展的性能診斷調(diào)優(yōu)方法,來解決上述問題。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)任務(wù)是針對以上不足之處,提供一種基于SQL語義可擴展的性能診斷調(diào)優(yōu)方法。
一種基于SQL語義可擴展的性能診斷調(diào)優(yōu)方法,其實現(xiàn)過程為:
首先獲取性能數(shù)據(jù);
從獲取的數(shù)據(jù)中找出需要診斷的SQL語句,并將其解析成一顆語法樹;
對語法樹進行分析,該語法樹的分析可進行擴展;
根據(jù)分析結(jié)果給出診斷結(jié)果和優(yōu)化建議,即給出索引創(chuàng)建或調(diào)整的建議。
獲取的性能數(shù)據(jù)包括動態(tài)性能數(shù)據(jù)和靜態(tài)性能數(shù)據(jù),其中動態(tài)性能數(shù)據(jù)包括SQL腳本、唯一標(biāo)識ID、CPU耗費、IO耗費、執(zhí)行時間、執(zhí)行頻率、邏輯讀數(shù)據(jù)、物理讀數(shù)據(jù)、磁盤寫數(shù)據(jù),靜態(tài)性能數(shù)據(jù)包括數(shù)據(jù)表信息、索引統(tǒng)計信息,其中數(shù)據(jù)表信息包括表名、字段名、不重復(fù)值的數(shù)量、空值的數(shù)量、直方圖中的桶數(shù)、采樣數(shù),索引統(tǒng)計信息包括表名、索引名、總行數(shù)及字段的選擇性。
所述性能數(shù)據(jù)通過性能視圖獲取,具體為:
首先通過性能視圖獲取耗時較長、IO消耗較大的TOP SQL信息;
獲取SQL的執(zhí)行計劃及具體IO耗費的分布情況;
收集SQL腳本中數(shù)據(jù)表的統(tǒng)計信息;
收集核心數(shù)據(jù)表的SQL訪問及執(zhí)行頻率。
所述SQL腳本中數(shù)據(jù)表的統(tǒng)計信息包括每個表的具體IO、該表篩選列字段的選擇性、表的索引和字段順序。
把SQL解析成語法樹的過程為:將獲取到的數(shù)據(jù)進行篩選,獲得需要分析的Top SQL列表,然后按照SQL92/SQL99標(biāo)準(zhǔn),對每一個SQL,生成一個相應(yīng)的語法樹。
對語法樹進行分析的過程為:
首先識別語法樹中SQL語句對應(yīng)數(shù)據(jù)表的統(tǒng)計信息和字段選擇性;
查看數(shù)據(jù)表總行數(shù)、索引情況及索引字段的順序,檢查索引字段的順序是否與該字段的選擇性匹配;
重建索引及更新統(tǒng)計信息;
統(tǒng)計數(shù)據(jù)表的訪問SQL及執(zhí)行頻率,確認(rèn)調(diào)整的索引覆蓋范圍是否合理,或拆分成多個小的組合索引。
根據(jù)分析結(jié)果給出診斷結(jié)果和優(yōu)化建議經(jīng)過分組后在系統(tǒng)的交互界面上輸出展示,展示內(nèi)容包括建議的優(yōu)化內(nèi)容及分析依據(jù)。
本發(fā)明的一種基于SQL語義可擴展的性能診斷調(diào)優(yōu)方法和現(xiàn)有技術(shù)相比,具有以下有益效果:
本發(fā)明的一種基于SQL語義可擴展的性能診斷調(diào)優(yōu)方法,提供了更為全面和系統(tǒng)的索引調(diào)整分析方法,降低對系統(tǒng)物理及邏輯IO的耗費,提高系統(tǒng)整體的響應(yīng)性能與吞吐量,能有效保證系統(tǒng)的響應(yīng)性能,降低系統(tǒng)的維護成本,實用性強,適用范圍廣泛,具有很好的推廣應(yīng)用價值。
附圖說明
附圖1為本發(fā)明的SQL語法樹示意圖。
具體實施方式
下面結(jié)合附圖及具體實施例對本發(fā)明作進一步說明。
本發(fā)明的技術(shù)任務(wù)是針對上述現(xiàn)有技術(shù)的不足,提供了一種更加全面、基于SQL語義可擴展的性能診斷調(diào)優(yōu)方法,該方法包括SQL響應(yīng)時間、執(zhí)行計劃與IO、數(shù)據(jù)表的統(tǒng)計信息、數(shù)據(jù)表典型SQL的執(zhí)行頻率、SQL腳本生成語法樹及對應(yīng)的運算分析等多個步驟,抓取的性能數(shù)據(jù)包括:數(shù)據(jù)表的總行數(shù)、滿足篩選條件的行數(shù)、CPU時間、SQL的執(zhí)行計劃、物理及邏輯IO、篩選字段的選擇性及索引字段的順序等。
其實現(xiàn)包括以下步驟:
首先獲取性能數(shù)據(jù);
如附圖1所示,從獲取的數(shù)據(jù)中找出需要診斷的SQL語句,并將其解析成一顆語法樹;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于濟南浪潮高新科技投資發(fā)展有限公司,未經(jīng)濟南浪潮高新科技投資發(fā)展有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611179242.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





