本申請(qǐng)涉及數(shù)據(jù)庫(kù)視圖的處理技術(shù),尤其涉及一種數(shù)據(jù)庫(kù)視圖的處理方法、裝置、設(shè)備、介質(zhì)和程序產(chǎn)品。
背景技術(shù):
1、數(shù)據(jù)庫(kù)在運(yùn)行過(guò)程中會(huì)執(zhí)行大量的數(shù)據(jù)庫(kù)操作語(yǔ)句,也稱為結(jié)構(gòu)化查詢語(yǔ)言(structured?query?language,sql)語(yǔ)句,數(shù)據(jù)庫(kù)一般都會(huì)使用性能分析工具(例如topsql統(tǒng)計(jì)視圖)來(lái)展示數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中sql語(yǔ)句執(zhí)行的次數(shù)以及耗時(shí)。
2、目前,通過(guò)提取sql語(yǔ)句中的各表達(dá)式的特征值,得到sql語(yǔ)句的查詢標(biāo)識(shí),并根據(jù)查詢標(biāo)識(shí)進(jìn)行統(tǒng)計(jì)生成top?sql統(tǒng)計(jì)視圖。在sql語(yǔ)句中包含列表(list)表達(dá)式時(shí),會(huì)生成多個(gè)不同的查詢標(biāo)識(shí),從而在top?sql統(tǒng)計(jì)視圖中對(duì)于語(yǔ)法結(jié)構(gòu)相同的sql語(yǔ)句會(huì)生成多個(gè)統(tǒng)計(jì)記錄。存在生成的top?sql統(tǒng)計(jì)視圖占用存儲(chǔ)空間較多的問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)庫(kù)視圖的處理方法、裝置、設(shè)備、介質(zhì)和程序產(chǎn)品,用以解決生成的top?sql統(tǒng)計(jì)視圖占用存儲(chǔ)空間較多的問(wèn)題。
2、第一方面,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)庫(kù)視圖的處理方法,包括:針對(duì)運(yùn)行的每條數(shù)據(jù)庫(kù)操作語(yǔ)句,對(duì)所述數(shù)據(jù)庫(kù)操作語(yǔ)句進(jìn)行解析,生成語(yǔ)法樹(shù);所述語(yǔ)法樹(shù)包括所述數(shù)據(jù)庫(kù)操作語(yǔ)句的各表達(dá)式;
3、提取所述各表達(dá)式的第一特征值,并根據(jù)所述各表達(dá)式的第一特征值得到所述數(shù)據(jù)庫(kù)操作語(yǔ)句的查詢標(biāo)識(shí);其中,所述數(shù)據(jù)庫(kù)操作語(yǔ)句中的各表達(dá)式中,滿足條件的表達(dá)式的第一特征值相同,所述條件包括類型為列表表達(dá)式且包含的元素均為常量表達(dá)式;
4、根據(jù)歷史執(zhí)行的各數(shù)據(jù)庫(kù)操作語(yǔ)句的查詢標(biāo)識(shí),生成數(shù)據(jù)庫(kù)視圖。
5、可選地,所述提取所述各表達(dá)式的第一特征值,并根據(jù)所述各表達(dá)式的第一特征值得到所述數(shù)據(jù)庫(kù)操作語(yǔ)句的查詢標(biāo)識(shí),具體包括:
6、若所述表達(dá)式滿足所述條件,則將預(yù)設(shè)的目標(biāo)特征值作為所述表達(dá)式的第一特征值;若所述表達(dá)式不滿足所述條件,則提取所述表達(dá)式的特征信息,并根據(jù)所述表達(dá)式的特征信息得到所述表達(dá)式的第一特征值;
7、將所述各表達(dá)式的第一特征值進(jìn)行拼接,得到所述數(shù)據(jù)庫(kù)操作語(yǔ)句的查詢標(biāo)識(shí)。
8、可選地,所述若所述表達(dá)式不滿足所述條件,則提取所述表達(dá)式的特征信息,并根據(jù)所述表達(dá)式的特征信息得到所述表達(dá)式的第一特征值,具體包括:
9、若所述表達(dá)式為列表表達(dá)式,且所述列表表達(dá)式包含的元素包括常量表達(dá)式和變量表達(dá)式,則提取所述常量表達(dá)式的特征值,提取所述變量表達(dá)式的特征值;
10、將所述常量表達(dá)式的特征值與所述變量表達(dá)式的特征值進(jìn)行合并,得到所述表達(dá)式的第一特征值。
11、可選地,所述將所述各表達(dá)式的第一特征值進(jìn)行拼接,得到所述數(shù)據(jù)庫(kù)操作語(yǔ)句的查詢標(biāo)識(shí),具體包括:
12、將所述各表達(dá)式的第一特征值進(jìn)行拼接,得到所述數(shù)據(jù)庫(kù)操作語(yǔ)句的第一結(jié)構(gòu)標(biāo)識(shí);
13、按照預(yù)設(shè)加密算法,對(duì)所述第一結(jié)構(gòu)標(biāo)識(shí)進(jìn)行加密,得到所述數(shù)據(jù)庫(kù)操作語(yǔ)句的查詢標(biāo)識(shí)。
14、可選地,所述根據(jù)歷史執(zhí)行的各數(shù)據(jù)庫(kù)操作語(yǔ)句的查詢標(biāo)識(shí),生成數(shù)據(jù)庫(kù)視圖,具體包括:
15、針對(duì)每個(gè)查詢標(biāo)識(shí),確定該查詢標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)庫(kù)操作語(yǔ)句集合,所述數(shù)據(jù)庫(kù)操作語(yǔ)句集合中的數(shù)據(jù)庫(kù)操作語(yǔ)句的查詢標(biāo)識(shí)均為該查詢標(biāo)識(shí);
16、將所述查詢標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)庫(kù)操作語(yǔ)句集合中的數(shù)據(jù)庫(kù)操作語(yǔ)句的常量表達(dá)式替換為預(yù)設(shè)的視圖常量表達(dá)式,得到該查詢標(biāo)識(shí)對(duì)應(yīng)的視圖操作語(yǔ)句;以及,根據(jù)所述查詢標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)庫(kù)操作語(yǔ)句集合,得到該視圖操作語(yǔ)句的統(tǒng)計(jì)結(jié)果;
17、根據(jù)各查詢標(biāo)識(shí)對(duì)應(yīng)的視圖操作語(yǔ)句和對(duì)應(yīng)的統(tǒng)計(jì)結(jié)果,生成所述數(shù)據(jù)庫(kù)視圖。
18、可選地,還包括:響應(yīng)數(shù)據(jù)庫(kù)操作語(yǔ)句的執(zhí)行,更新所述數(shù)據(jù)庫(kù)視圖。
19、第二方面,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)庫(kù)視圖的處理裝置,包括:
20、解析模塊,用于針對(duì)運(yùn)行的每條數(shù)據(jù)庫(kù)操作語(yǔ)句,對(duì)所述數(shù)據(jù)庫(kù)操作語(yǔ)句進(jìn)行解析,生成語(yǔ)法樹(shù);所述語(yǔ)法樹(shù)包括所述數(shù)據(jù)庫(kù)操作語(yǔ)句的各表達(dá)式。
21、提取模塊,用于提取所述各表達(dá)式的第一特征值,并根據(jù)所述各表達(dá)式的第一特征值得到所述數(shù)據(jù)庫(kù)操作語(yǔ)句的查詢標(biāo)識(shí);其中,所述數(shù)據(jù)庫(kù)操作語(yǔ)句中的各表達(dá)式中,滿足條件的表達(dá)式的第一特征值相同,所述條件包括類型為列表表達(dá)式且包含的元素均為常量表達(dá)式。
22、生成模塊,用于根據(jù)歷史執(zhí)行的各數(shù)據(jù)庫(kù)操作語(yǔ)句的查詢標(biāo)識(shí),生成數(shù)據(jù)庫(kù)視圖。
23、第三方面,本申請(qǐng)?zhí)峁┮环N電子設(shè)備,包括:處理器,以及與所述處理器連接的存儲(chǔ)器;
24、所述存儲(chǔ)器存儲(chǔ)計(jì)算機(jī)執(zhí)行指令;
25、所述處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)執(zhí)行指令,以實(shí)現(xiàn)如第一方面任一項(xiàng)所述的方法。
26、第四方面,本申請(qǐng)?zhí)峁┮环N計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)執(zhí)行指令,所述計(jì)算機(jī)執(zhí)行指令被處理器執(zhí)行時(shí)用于實(shí)現(xiàn)如第一方面任一項(xiàng)所述的方法。
27、第五方面,本申請(qǐng)?zhí)峁┮环N計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一方面任一項(xiàng)所述的方法。
28、本申請(qǐng)?zhí)峁┑臄?shù)據(jù)庫(kù)視圖的處理方法、裝置、設(shè)備、介質(zhì)和程序產(chǎn)品,通過(guò)對(duì)sql語(yǔ)句進(jìn)行解析,生成由表達(dá)式組成的語(yǔ)法樹(shù);提取各表達(dá)式的特征值,得到sql語(yǔ)句的查詢標(biāo)識(shí),在表達(dá)式的類型為列表表達(dá)式且該表達(dá)式包含的元素均為常量表達(dá)式時(shí),這些表達(dá)式的特征值相同,從而得到相同的查詢標(biāo)識(shí),根據(jù)查詢標(biāo)識(shí)生成數(shù)據(jù)庫(kù)視圖時(shí),這些具有相同語(yǔ)法結(jié)構(gòu)的sql語(yǔ)句的統(tǒng)計(jì)信息被合并為一條統(tǒng)計(jì)信息,節(jié)省了數(shù)據(jù)庫(kù)視圖占用的存儲(chǔ)空間。
1.一種數(shù)據(jù)庫(kù)視圖的處理方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述提取所述各表達(dá)式的第一特征值,并根據(jù)所述各表達(dá)式的第一特征值得到所述數(shù)據(jù)庫(kù)操作語(yǔ)句的查詢標(biāo)識(shí),具體包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述若所述表達(dá)式不滿足所述條件,則提取所述表達(dá)式的特征信息,并根據(jù)所述表達(dá)式的特征信息得到所述表達(dá)式的第一特征值,具體包括:
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將所述各表達(dá)式的第一特征值進(jìn)行拼接,得到所述數(shù)據(jù)庫(kù)操作語(yǔ)句的查詢標(biāo)識(shí),具體包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)歷史執(zhí)行的各數(shù)據(jù)庫(kù)操作語(yǔ)句的查詢標(biāo)識(shí),生成數(shù)據(jù)庫(kù)視圖,具體包括:
6.根據(jù)權(quán)利要求1至5任一項(xiàng)所述的方法,其特征在于,還包括:
7.一種數(shù)據(jù)庫(kù)視圖的處理裝置,其特征在于,所述裝置包括:
8.一種電子設(shè)備,其特征在于,包括:處理器,以及與所述處理器連接的存儲(chǔ)器;
9.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)執(zhí)行指令,所述計(jì)算機(jī)執(zhí)行指令被處理器執(zhí)行時(shí)用于實(shí)現(xiàn)如權(quán)利要求1至6任一項(xiàng)所述的方法。
10.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,包括計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至6任一項(xiàng)所述的方法。