[發(fā)明專利]SQL優(yōu)化查詢方法及裝置有效
| 申請?zhí)枺?/td> | 202011048287.7 | 申請日: | 2020-09-29 |
| 公開(公告)號: | CN112286961B | 公開(公告)日: | 2022-11-18 |
| 發(fā)明(設(shè)計)人: | 盧勇亮;鄭堯峰;湯國強;桑強;孫遷 | 申請(專利權(quán))人: | 蘇寧云計算有限公司 |
| 主分類號: | G06F16/2453 | 分類號: | G06F16/2453;G06F16/248 |
| 代理公司: | 北京市萬慧達律師事務(wù)所 11111 | 代理人: | 黃玉東 |
| 地址: | 210000 江蘇省南*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | sql 優(yōu)化 查詢 方法 裝置 | ||
1.一種SQL優(yōu)化查詢方法,其特征在于,包括:
解析SQL查詢語句為UNION集合類型的查詢語句時,統(tǒng)計目標(biāo)數(shù)據(jù)所涉及存儲片段的數(shù)量,所述UNION集合類型的查詢語句包括多個子查詢語句;
在涉及的所述存儲片段的數(shù)量大于閾值時,將所述子查詢語句對應(yīng)的查詢周期拆分成多個粒度周期,以及將多個子查詢語句對應(yīng)的目標(biāo)數(shù)據(jù)維度匯總后作為新增條件加入所述子查詢語句的過濾條件中;
將包含所述過濾條件的子查詢語句下推至計算引擎并發(fā)讀取每個粒度周期所對應(yīng)的目標(biāo)數(shù)據(jù)及其中的維度值,經(jīng)處理端計算后向用戶返回查詢結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述存儲片段的數(shù)量大于閾值時,將所述子查詢語句對應(yīng)的查詢周期拆分成多個粒度周期的方法包括:
提取每個所述子查詢語句對應(yīng)的查詢周期,將各查詢周期按照預(yù)設(shè)粒度平均拆分成多個粒度周期。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,將多個子查詢語句對應(yīng)的目標(biāo)數(shù)據(jù)維度匯總后作為新增條件加入所述子查詢語句的過濾條件中的方法包括:
識別每個子查詢語句對應(yīng)的目標(biāo)數(shù)據(jù)維度,當(dāng)各所述子查詢語句的目標(biāo)數(shù)據(jù)維度一致,則取任一所述子查詢語句的目標(biāo)數(shù)據(jù)維度作為新增條件加入每個所述子查詢語句的過濾條件中;
當(dāng)各所述子查詢語句的目標(biāo)數(shù)據(jù)維度不一致,則分別將各所述子查詢語句的目標(biāo)數(shù)據(jù)維度匯總合并后作為新增條件加入每個所述子查詢語句的過濾條件中。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述UNION集合類型的查詢語句至少包括第一周期子查詢語句和第二周期子查詢語句,所述過濾條件除所述新增條件之外還包括查詢度量、維度排序和目標(biāo)數(shù)據(jù)查詢數(shù)量。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,計算引擎并發(fā)讀取每個粒度周期所對應(yīng)的目標(biāo)數(shù)據(jù)及其中的維度值的方法包括:
計算引擎根據(jù)每個子查詢語句及其中的過濾條件,分別從相應(yīng)數(shù)據(jù)源的對應(yīng)存儲片段中查詢符合所述目標(biāo)數(shù)據(jù)查詢數(shù)量條件的目標(biāo)數(shù)據(jù)并提取其中的維度值。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,經(jīng)處理端計算后向用戶返回查詢結(jié)果的方法包括:
處理端根據(jù)各子查詢語句返回的所述維度值,按照預(yù)設(shè)規(guī)則計算后向用戶返回查詢結(jié)果。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,在步驟將包含所述過濾條件的子查詢語句下推至計算引擎并發(fā)讀取每個粒度周期所對應(yīng)的目標(biāo)數(shù)據(jù)及其中的維度值,經(jīng)處理端計算后向用戶返回查詢結(jié)果之后還包括:
統(tǒng)計歷史SQL查詢語句中的熱點數(shù)據(jù)源及其中的熱點數(shù)據(jù)維度,并對熱點數(shù)據(jù)維度對應(yīng)的維值進行預(yù)提取,以備后續(xù)SQL查詢語句的快速調(diào)用。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,在步驟將包含所述過濾條件的子查詢語句下推至計算引擎并發(fā)讀取每個粒度周期所對應(yīng)的目標(biāo)數(shù)據(jù)及其中的維度值,經(jīng)處理端計算后向用戶返回查詢結(jié)果之后還包括:
將每個子查詢語句及對應(yīng)的目標(biāo)數(shù)據(jù)和其中的維度值在數(shù)據(jù)庫中進行緩存,以在后續(xù)出現(xiàn)相同子查詢語句時能夠從數(shù)據(jù)庫中快速調(diào)用。
9.一種SQL優(yōu)化查詢裝置,其特征在于,包括:
語句解析單元,用于解析SQL查詢語句為UNION集合類型的查詢語句時,統(tǒng)計目標(biāo)數(shù)據(jù)所涉及存儲片段的數(shù)量,所述UNION集合類型的查詢語句包括多個子查詢語句;
識別處理單元,用于在涉及的所述存儲片段的數(shù)量大于閾值時,將所述子查詢語句對應(yīng)的查詢周期拆分成多個粒度周期,以及將多個子查詢語句對應(yīng)的目標(biāo)數(shù)據(jù)維度匯總后作為新增條件加入所述子查詢語句的過濾條件中;
查詢單元,用于將包含所述過濾條件的子查詢語句下推至計算引擎并發(fā)讀取每個粒度周期所對應(yīng)的目標(biāo)數(shù)據(jù)及其中的維度值,經(jīng)處理端計算后向用戶返回查詢結(jié)果。
10.一種計算機可讀存儲介質(zhì),計算機可讀存儲介質(zhì)上存儲有計算機程序,其特征在于,計算機程序被處理器運行時執(zhí)行上述權(quán)利要求1至8任一項所述方法的步驟。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于蘇寧云計算有限公司,未經(jīng)蘇寧云計算有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011048287.7/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





