專利名稱:海量sql語(yǔ)句合并歸類的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)庫(kù),尤其涉及一種海量SQL語(yǔ)句合并歸類的方法及裝置。
背景技術(shù):
在目前很多大型企業(yè)如電子、金融、政府等都已經(jīng)建立了符合自身需求的數(shù)據(jù)庫(kù)及其管理系統(tǒng),以加強(qiáng)對(duì)日益膨脹的數(shù)據(jù)倉(cāng)庫(kù)的管理。為了能夠維持管理系統(tǒng)的穩(wěn)定,要有專門的維護(hù)管理,日常管理中就少不了對(duì)數(shù)據(jù)庫(kù)的監(jiān)控分析。在目前的數(shù)據(jù)庫(kù)監(jiān)控分析中, 對(duì)于SQL數(shù)據(jù)的分析挖掘,往往局限于操作方式及操作對(duì)象的分析,操作方式及操作對(duì)象的關(guān)聯(lián)松散,會(huì)導(dǎo)致由于數(shù)據(jù)量龐大,數(shù)據(jù)繁雜,語(yǔ)義復(fù)雜,難以查找識(shí)別異常操作,工作量繁瑣且巨大,浪費(fèi)了大量的人力資源和時(shí)間。
通過(guò)對(duì)現(xiàn)有技術(shù)的分析,總結(jié)出了下述缺點(diǎn)。
缺點(diǎn)I :操作方式及操作對(duì)象的關(guān)聯(lián)松散,僅有這兩個(gè)值并不能確定語(yǔ)意。
缺點(diǎn)2 :相似的SQL語(yǔ)句之間沒(méi)有歸類合并,導(dǎo)致數(shù)據(jù)量龐大,查找困難。
缺點(diǎn)3 :沒(méi)有具體的語(yǔ)意,導(dǎo)致匹配不準(zhǔn)確,容易出現(xiàn)誤報(bào)。發(fā)明內(nèi)容
本發(fā)明主要解決的技術(shù)問(wèn)題是提供一種海量SQL語(yǔ)句合并歸類的方法及裝置,用以解決現(xiàn)有技術(shù)的諸多不足。
為解決上述問(wèn)題,本發(fā)明采用的一種技術(shù)方案是提供一種海量SQL語(yǔ)句合并歸類的方法,包括
SI、分析數(shù)據(jù)庫(kù)環(huán)境,采集運(yùn)行系統(tǒng)中所有的SQL語(yǔ)句;
S2、對(duì)每條所述SQL語(yǔ)句進(jìn)行解析,得到所述SQL語(yǔ)句中的變量值;并將所述變量值用常量替換,得到解析后SQL語(yǔ)句;
S3、計(jì)算并得到所述解析后SQL語(yǔ)句的HASH值,根據(jù)所述HASH值將所述SQL語(yǔ)句歸類合并,并將歸類合并后的結(jié)果存儲(chǔ);其中,解析后SQL語(yǔ)句相同的SQL語(yǔ)句為相似SQL 語(yǔ)句。
其中,所述S3中根據(jù)所述HASH值將所述SQL語(yǔ)句歸類合并包括檢測(cè)所述運(yùn)行系統(tǒng)中是否已存儲(chǔ)所述HASH值,并檢測(cè)到?jīng)]有存儲(chǔ)所述HASH值的情況下存儲(chǔ)所述HASH值, 且將所述HASH值對(duì)應(yīng)的解析后SQL語(yǔ)句存儲(chǔ)至運(yùn)行系統(tǒng)預(yù)置的相似語(yǔ)句表中。
其中,所述S3中還包括統(tǒng)計(jì)所述HASH值的出現(xiàn)次數(shù)。
其中,所述S3之后還包括S4、獲取S3統(tǒng)計(jì)的所述HASH值的出現(xiàn)次數(shù),并根據(jù)獲取到的HASH值的出現(xiàn)次數(shù)生成相似SQL語(yǔ)句的出現(xiàn)頻率圖。
為解決上述問(wèn)題,本發(fā)明采用的另一種技術(shù)方案是提供一種海量SQL語(yǔ)句合并歸類的裝置,包括
采集模塊,用于分析數(shù)據(jù)庫(kù)環(huán)境,采集運(yùn)行系統(tǒng)中所有的SQL語(yǔ)句;
解析模塊,用于對(duì)每條所述SQL語(yǔ)句進(jìn)行解析,得到所述SQL語(yǔ)句中的變量值;并將所述變量值用常量替換,得到解析后SQL語(yǔ)句;
歸類模塊,用于計(jì)算并得到所述解析后SQL語(yǔ)句的HASH值,根據(jù)所述HASH值將所述SQL語(yǔ)句歸類合并,并將歸類合并后的結(jié)果存儲(chǔ);其中,解析后SQL語(yǔ)句相同的SQL語(yǔ)句為相似SQL語(yǔ)句。
其中,所述歸類模塊包括檢測(cè)子單元,用于檢測(cè)所述運(yùn)行系統(tǒng)中是否已存儲(chǔ)所述 HASH值,并檢測(cè)到?jīng)]有存儲(chǔ)所述HASH值的情況下存儲(chǔ)所述HASH值,且將所述HASH值對(duì)應(yīng)的解析后SQL語(yǔ)句存儲(chǔ)至運(yùn)行系統(tǒng)預(yù)置的相似語(yǔ)句表中。
其中,所述歸類模塊還包括統(tǒng)計(jì)子單元,用于統(tǒng)計(jì)所述HASH值的出現(xiàn)次數(shù)。
其中,獲取模塊,用于獲取歸類模塊統(tǒng)計(jì)的所述HASH值的出現(xiàn)次數(shù),并根據(jù)獲取到的HASH值的出現(xiàn)次數(shù)生成相似SQL語(yǔ)句的出現(xiàn)頻率圖。
本發(fā)明的有益效果是區(qū)別于現(xiàn)有技術(shù)的諸多不足,本發(fā)明提供一種海量SQL語(yǔ)句合并歸類的方法及裝置,通過(guò)本發(fā)明提供的技術(shù)方案,得到了相似SQL語(yǔ)句及其唯一的 HASH值,實(shí)現(xiàn)了 SQL語(yǔ)句的歸類及合并;那么對(duì)于一個(gè)每天都重復(fù)著同樣的操作的被審計(jì)監(jiān)控的系統(tǒng),其系統(tǒng)中有了大量的相似語(yǔ)句,被原始SQL語(yǔ)句占據(jù)的空間就大大減少,這樣大大節(jié)省了存儲(chǔ)空間,并且由于數(shù)據(jù)量的急劇減少,數(shù)據(jù)查詢效率大幅度提升。進(jìn)一步可以理解的是,在一個(gè)穩(wěn)定的被審計(jì)監(jiān)控的系統(tǒng)中,相似語(yǔ)句數(shù)量是會(huì)處于一個(gè)穩(wěn)定的狀態(tài),并且隨著審計(jì)系統(tǒng)的運(yùn)行,數(shù)量將慢慢地不再增加。
圖I為一實(shí)施方式中海量SQL語(yǔ)句合并歸類的方法的流程圖2為上述實(shí)施方式中S3的具體流程圖3為另一實(shí)施方式中海量SQL語(yǔ)句合并歸類的方法的流程圖4為一實(shí)施方式中海量SQL語(yǔ)句合并歸類的裝置的功能模塊圖5為上述實(shí)施方式中歸類模塊的功能模塊圖6為另一實(shí)施方式中海量SQL語(yǔ)句合并歸類的裝置的功能模塊圖。
標(biāo)號(hào)說(shuō)明
10-采集模塊,
20-解析模塊,
30-歸類模塊,
301-計(jì)算子單元,
302-檢測(cè)子單元,
303-統(tǒng)計(jì)子單元。
40-獲取模塊。
具體實(shí)施方式
為詳細(xì)說(shuō)明本發(fā)明的技術(shù)內(nèi)容、構(gòu)造特征、所實(shí)現(xiàn)目的及效果,以下結(jié)合實(shí)施方式并配合附圖詳予說(shuō)明。
請(qǐng)參閱圖I至圖3,圖I所示的實(shí)施方式提供一種海量SQL語(yǔ)句合并歸類的方法, 包括
SI、分析數(shù)據(jù)庫(kù)環(huán)境,采集運(yùn)行系統(tǒng)中所有的SQL語(yǔ)句。
S2、對(duì)每條所述SQL語(yǔ)句進(jìn)行解析,得到所述SQL語(yǔ)句中的變量值。然后并將所述變量值用常量替換,得到解析后SQL語(yǔ)句。在本實(shí)施方式中,把變量值用“1”,“2”等數(shù)字常量按順序替換,使得到每條SQL語(yǔ)句都變成這種形式的新的SQL語(yǔ)句。在其他實(shí)施方式中,把變量用“a” “b”等字母常量順序替換。
S3、計(jì)算并得到所述解析后SQL語(yǔ)句的HASH值,根據(jù)所述HASH值將所述SQL語(yǔ)句歸類合并,并將歸類合并后的結(jié)果存儲(chǔ);其中,解析后SQL語(yǔ)句相同的SQL語(yǔ)句為相似SQL 語(yǔ)句。通過(guò)上述S2解析后SQL語(yǔ)句,由于把變量值都替換了,相似SQL語(yǔ)句經(jīng)過(guò)解析后是完全一樣的,因此解析后相同的SQL語(yǔ)句在系統(tǒng)中會(huì)出現(xiàn)很多相同的。對(duì)這些SQL語(yǔ)句分別計(jì)算每條的HASH值,由于這HASH值對(duì)于相同的SQL語(yǔ)句是相同的,因此相似SQL語(yǔ)句的 HASH值是一樣的,非相似SQL的HASH值是不同的。應(yīng)當(dāng)理解的是,解析后SQL語(yǔ)句相同的 SQL語(yǔ)句為相似SQL語(yǔ)句,也就意味著相似SQL語(yǔ)句的原始SQL語(yǔ)句只有變量值不同。例如下面每組都為相似語(yǔ)句
語(yǔ)句select*from tab I where fl=123 與語(yǔ)句 select*from tab I where f 1=456 ;
語(yǔ)句update tab I set f I = lwhere f2=a 與語(yǔ)句 update tab I set f 1=2 where f2=b ;
語(yǔ)句insert tab I (f I, f2, f3) values (I, 2, 3)與語(yǔ)句 insert tab I (f I, f2, f3) values (a, b, c)。
在具體如圖2所示的某些實(shí)施例中,所述S3中根據(jù)所述HASH值將所述SQL語(yǔ)句歸類合并包括S301、S302,具體如下文所示
S301、檢測(cè)所述運(yùn)行系統(tǒng)中是否已存儲(chǔ)所述HASH值;
S302、檢測(cè)到?jīng)]有存儲(chǔ)所述HASH值的情況下存儲(chǔ)所述HASH值,且將所述HASH值對(duì)應(yīng)的解析后SQL語(yǔ)句存儲(chǔ)至運(yùn)行系統(tǒng)預(yù)置的相似語(yǔ)句表中。
通過(guò)上述過(guò)程,得到了相似SQL語(yǔ)句及其唯一的HASH值,實(shí)現(xiàn)了 SQL語(yǔ)句的歸類及合并。傳統(tǒng)技術(shù)原來(lái)在存儲(chǔ)時(shí),在每條操作明細(xì)中,都要存儲(chǔ)原始SQL語(yǔ)句,通過(guò)本方法只要存儲(chǔ)計(jì)算出來(lái)的HASH值及原始SQL語(yǔ)句的變量值,把相似語(yǔ)句存儲(chǔ)在另外一張運(yùn)行系統(tǒng)預(yù)置的相似語(yǔ)句表中。在本實(shí)施方式中,本系統(tǒng)專門建立一張存儲(chǔ)表用于存儲(chǔ)計(jì)算出來(lái)的HASH值及原始SQL語(yǔ)句的變量值。應(yīng)當(dāng)理解,存儲(chǔ)表與相似語(yǔ)句表之間是通過(guò)HASH值進(jìn)行關(guān)聯(lián)的。那么對(duì)于一個(gè)每天都重復(fù)著同樣的操作的被審計(jì)監(jiān)控的系統(tǒng),其系統(tǒng)中有了大量的相似語(yǔ)句,被原始SQL語(yǔ)句占據(jù)的空間就大大減少,這樣大大節(jié)省了存儲(chǔ)空間,并且由于數(shù)據(jù)量的急劇減少,數(shù)據(jù)查詢效率大幅度提升。進(jìn)一步可以理解的是,在一個(gè)穩(wěn)定的被審計(jì)監(jiān)控的系統(tǒng)中,相似語(yǔ)句數(shù)量是會(huì)處于一個(gè)穩(wěn)定的狀態(tài),并且隨著審計(jì)系統(tǒng)的運(yùn)行,數(shù)量將慢慢地不再增加。
在如圖3所示的優(yōu)選實(shí)施方式中,所述S3中計(jì)算并得到所述解析后SQL語(yǔ)句的 HASH值之后還包括S3020、統(tǒng)計(jì)所述HASH值的出現(xiàn)次數(shù)。應(yīng)當(dāng)理解的是,對(duì)于一個(gè)系統(tǒng)而言,次數(shù)較少的操作往往屬于高風(fēng)險(xiǎn)操作。通過(guò)本實(shí)施方式對(duì)相似SQL語(yǔ)句進(jìn)行統(tǒng)計(jì),統(tǒng)計(jì)任一 SQL語(yǔ)句在某一時(shí)刻的出現(xiàn)次數(shù),根據(jù)出現(xiàn)的次數(shù),出現(xiàn)次數(shù)少的,屬于風(fēng)險(xiǎn)等級(jí)高的語(yǔ)句,這樣能夠及時(shí)發(fā)現(xiàn)安全隱患,保證系統(tǒng)的穩(wěn)定運(yùn)行。在本實(shí)施方式中,S3020與S302 可同時(shí)進(jìn)行。在另一實(shí)施方式中,S3020可在S302執(zhí)行完成之后再進(jìn)行。
在上述實(shí)施方式中,所述S3之后還包括S4、獲取S3統(tǒng)計(jì)的所述HASH值的出現(xiàn)次數(shù),并根據(jù)獲取到的HASH值的出現(xiàn)次數(shù)生成相似SQL語(yǔ)句的出現(xiàn)頻率圖。在本實(shí)施方式中, 繼S4之后還會(huì)將得到的相似SQL語(yǔ)句的出現(xiàn)圖發(fā)送至系統(tǒng)的顯示模塊顯示,這樣就能夠直觀地看到S3的統(tǒng)計(jì)結(jié)果,并能夠更準(zhǔn)確迅速地發(fā)現(xiàn)安全隱患,保證系統(tǒng)的穩(wěn)定運(yùn)行。在此, S4是在S3020之后執(zhí)行的。在另一實(shí)施方式中,圖3中S302、S3020執(zhí)行完成之后再進(jìn)行 S4,此實(shí)施方式中S4可在S302之后執(zhí)行。在其他實(shí)施方式中,3020在S302執(zhí)行完成之后再進(jìn)行,而S4在S3020之后執(zhí)行。
請(qǐng)參閱圖4,本實(shí)施方式提供一種海量SQL語(yǔ)句合并歸類的裝置,包括采集模塊 IO、解析模塊20及歸類模塊30。其中,
采集模塊10,用于分析數(shù)據(jù)庫(kù)環(huán)境,采集運(yùn)行系統(tǒng)中所有的SQL語(yǔ)句。
解析模塊20,用于對(duì)每條所述SQL語(yǔ)句進(jìn)行解析,得到所述SQL語(yǔ)句中的變量值; 并將所述變量值用常量替換,得到解析后SQL語(yǔ)句。在本實(shí)施方式中,把變量值用“1”, “ 2”等數(shù)字常量按順序替換,使得到每條SQL語(yǔ)句都變成這種形式的新的SQL語(yǔ)句。在其他實(shí)施方式中,把變量用“a” “b”等字母常量按順序替換。
歸類模塊30,用于計(jì)算并得到所述解析后SQL語(yǔ)句的HASH值,根據(jù)所述HASH值將所述SQL語(yǔ)句歸類合并,并將歸類合并后的結(jié)果存儲(chǔ);其中,解析后SQL語(yǔ)句相同的SQL語(yǔ)句為相似SQL語(yǔ)句。通過(guò)解析模塊20解析后SQL語(yǔ)句,由于把變量值都替換了,相似SQL語(yǔ)句經(jīng)過(guò)解析后是完全一樣的,因此解析后相同的SQL語(yǔ)句在系統(tǒng)中會(huì)出現(xiàn)很多相同的。歸類模塊30對(duì)這些SQL語(yǔ)句分別計(jì)算每條的HASH值,由于這HASH值對(duì)于相同的SQL語(yǔ)句是相同的,因此相似SQL語(yǔ)句的HASH值是一樣的,非相似SQL的HASH值是不同的。
應(yīng)當(dāng)理解的是,解析后SQL語(yǔ)句相同的SQL語(yǔ)句為相似SQL語(yǔ)句,也就意味著相似 SQL語(yǔ)句的原始SQL語(yǔ)句只有變量值不同。例如下面每組都為相似語(yǔ)句
語(yǔ)句select*from tab I where fl=123 與語(yǔ)句 select*from tab I where f 1=456 ;
語(yǔ)句 update tab I set fl = I where f2=a 與語(yǔ)句 update tab I set f l=2where f2=b ;
語(yǔ)句insert tab I (f I, f2, f3) values (I, 2, 3)與語(yǔ)句 insert tab I (f I, f2, f3) values (a, b, c)。
請(qǐng)參閱圖5,本實(shí)施方式中所述歸類模塊30包括計(jì)算子單元301和檢測(cè)子單元 302。其中,計(jì)算子單元301,用于計(jì)算并得到所述解析后SQL語(yǔ)句的HASH值。檢測(cè)子單元 302,用于檢測(cè)所述運(yùn)行系統(tǒng)中是否已存儲(chǔ)所述HASH值,并檢測(cè)到?jīng)]有存儲(chǔ)所述HASH值的情況下存儲(chǔ)所述HASH值,且將所述HASH值對(duì)應(yīng)的解析后SQL語(yǔ)句存儲(chǔ)至運(yùn)行系統(tǒng)預(yù)置的相似語(yǔ)句表中。
通過(guò)上述裝置,得到了相似SQL語(yǔ)句及其唯一的HASH值,實(shí)現(xiàn)了 SQL語(yǔ)句的歸類及合并。傳統(tǒng)技術(shù)原來(lái)在存儲(chǔ)時(shí),在每條操作明細(xì)中,都要存儲(chǔ)原始SQL語(yǔ)句,通過(guò)本方法只要存儲(chǔ)計(jì)算出來(lái)的HASH值及原始SQL語(yǔ)句的變量值,把相似語(yǔ)句存儲(chǔ)在另外一張運(yùn)行系統(tǒng)預(yù)置的相似語(yǔ)句表中。在本實(shí)施方式中,本系統(tǒng)專門建立一張存儲(chǔ)表用于存儲(chǔ)計(jì)算出來(lái)的HASH值及原始SQL語(yǔ)句的變量值。應(yīng)當(dāng)理解,存儲(chǔ)表與相似語(yǔ)句表之間是通過(guò)HASH值進(jìn)行關(guān)聯(lián)的。那么對(duì)于一個(gè)每天都重復(fù)著同樣的操作的被審計(jì)監(jiān)控的系統(tǒng),其系統(tǒng)中有了大量的相似語(yǔ)句,被原始SQL語(yǔ)句占據(jù)的空間就大大減少,這樣大大節(jié)省了存儲(chǔ)空間,并且由于數(shù)據(jù)量的急劇減少,數(shù)據(jù)查詢效率大幅度提升。進(jìn)一步可以理解的是,在一個(gè)穩(wěn)定的被審計(jì)監(jiān)控的系統(tǒng)中,相似語(yǔ)句數(shù)量是會(huì)處于一個(gè)穩(wěn)定的狀態(tài),并且隨著審計(jì)系統(tǒng)的運(yùn)行,數(shù)量將慢慢地不再增加。
在上述優(yōu)選的實(shí)施方式中,所述裝置還包括統(tǒng)計(jì)子單元303,用于統(tǒng)計(jì)所述HASH 值的出現(xiàn)次數(shù)。應(yīng)當(dāng)理解的是,對(duì)于一個(gè)系統(tǒng)而言,次數(shù)較少的操作往往屬于高風(fēng)險(xiǎn)操作。 通過(guò)本實(shí)施方式對(duì)相似SQL語(yǔ)句進(jìn)行統(tǒng)計(jì),統(tǒng)計(jì)任一 SQL語(yǔ)句在某一時(shí)刻的出現(xiàn)次數(shù),根據(jù)出現(xiàn)的次數(shù),出現(xiàn)次數(shù)少的,屬于風(fēng)險(xiǎn)等級(jí)高的語(yǔ)句,這樣能夠及時(shí)發(fā)現(xiàn)安全隱患,保證系統(tǒng)的穩(wěn)定運(yùn)行。
請(qǐng)參閱圖6,上述實(shí)施方式中,所述裝置還包括獲取模塊40,用于獲取歸類模塊30 統(tǒng)計(jì)的所述HASH值的出現(xiàn)次數(shù),并根據(jù)獲取到的HASH值的出現(xiàn)次數(shù)生成相似SQL語(yǔ)句的出現(xiàn)頻率圖。在本實(shí)施方式優(yōu)選的實(shí)施例中,獲取模塊40將得到的相似SQL語(yǔ)句的出現(xiàn)圖發(fā)送至系統(tǒng)的顯示模塊顯示,這樣就能夠直觀地看到S3的統(tǒng)計(jì)結(jié)果,并能夠更準(zhǔn)確迅速地發(fā)現(xiàn)安全隱患,保證系統(tǒng)的穩(wěn)定運(yùn)行。
綜上所述,區(qū)別于現(xiàn)有技術(shù)的諸多不足,本發(fā)明提供一種海量SQL語(yǔ)句合并歸類的方法及裝置,通過(guò)本發(fā)明提供的技術(shù)方案,得到了相似SQL語(yǔ)句及其唯一的HASH值,實(shí)現(xiàn)了 SQL語(yǔ)句的歸類及合并;那么對(duì)于一個(gè)每天都重復(fù)著同樣的操作的被審計(jì)監(jiān)控的系統(tǒng), 其系統(tǒng)中有了大量的相似語(yǔ)句,被原始S Q L語(yǔ)句占據(jù)的空間就大大減少,這樣大大節(jié)省了存儲(chǔ)空間,并且由于數(shù)據(jù)量的急劇減少,數(shù)據(jù)查詢效率大幅度提升。進(jìn)一步可以理解的是, 在一個(gè)穩(wěn)定的被審計(jì)監(jiān)控的系統(tǒng)中,相似語(yǔ)句數(shù)量是會(huì)處于一個(gè)穩(wěn)定的狀態(tài),并且隨著審計(jì)系統(tǒng)的運(yùn)行,數(shù)量將慢慢地不再增加。
以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種海量SQL語(yǔ)句合并歸類的方法,其特征在于,包括51、分析數(shù)據(jù)庫(kù)環(huán)境,采集運(yùn)行系統(tǒng)中所有的SQL語(yǔ)句;52、對(duì)每條所述SQL語(yǔ)句進(jìn)行解析,得到所述SQL語(yǔ)句中的變量值;并將所述變量值用常量替換,得到解析后SQL語(yǔ)句;53、計(jì)算并得到所述解析后SQL語(yǔ)句的HASH值,根據(jù)所述HASH值將所述SQL語(yǔ)句歸類合并,并將歸類合并后的結(jié)果存儲(chǔ);其中,解析后SQL語(yǔ)句相同的SQL語(yǔ)句為相似SQL語(yǔ)句。
2.根據(jù)權(quán)利要求I所述的海量SQL語(yǔ)句合并歸類的方法,其特征在于,所述S3中根據(jù)所述HASH值將所述SQL語(yǔ)句歸類合并包括檢測(cè)所述運(yùn)行系統(tǒng)中是否已存儲(chǔ)所述HASH值,并檢測(cè)到?jīng)]有存儲(chǔ)所述HASH值的情況下存儲(chǔ)所述HASH值,且將所述HASH值對(duì)應(yīng)的解析后SQL語(yǔ)句存儲(chǔ)至運(yùn)行系統(tǒng)預(yù)置的相似語(yǔ)句表中。
3.根據(jù)權(quán)利要求I或2所述的海量SQL語(yǔ)句合并歸類的方法,其特征在于,所述S3中還包括統(tǒng)計(jì)所述HASH值的出現(xiàn)次數(shù)。
4.根據(jù)權(quán)利要求3所述的海量SQL語(yǔ)句合并歸類的方法,其特征在于,所述S3之后還包括S4、獲取S3統(tǒng)計(jì)的所述HASH值的出現(xiàn)次數(shù),并根據(jù)獲取到的HASH值的出現(xiàn)次數(shù)生成相似SQL語(yǔ)句的出現(xiàn)頻率圖。
5.一種海量SQL語(yǔ)句合并歸類的裝置,其特征在于包括采集模塊,用于分析數(shù)據(jù)庫(kù)環(huán)境,采集運(yùn)行系統(tǒng)中所有的SQL語(yǔ)句;解析模塊,用于對(duì)每條所述SQL語(yǔ)句進(jìn)行解析,得到所述SQL語(yǔ)句中的變量值;并將所述變量值用常量替換,得到解析后SQL語(yǔ)句;歸類模塊,用于計(jì)算并得到所述解析后SQL語(yǔ)句的HASH值,根據(jù)所述HASH值將所述 SQL語(yǔ)句歸類合并,并將歸類合并后的結(jié)果存儲(chǔ);其中,解析后SQL語(yǔ)句相同的SQL語(yǔ)句為相似SQL語(yǔ)句。
6.根據(jù)權(quán)利要求5所述的海量SQL語(yǔ)句合并歸類的裝置,其特征在于所述歸類模塊包括檢測(cè)子單元,用于檢測(cè)所述運(yùn)行系統(tǒng)中是否已存儲(chǔ)所述HASH值,并檢測(cè)到?jīng)]有存儲(chǔ)所述HASH值的情況下存儲(chǔ)所述HASH值,且將所述HASH值對(duì)應(yīng)的解析后SQL語(yǔ)句存儲(chǔ)至運(yùn)行系統(tǒng)預(yù)置的相似語(yǔ)句表中。
7.根據(jù)權(quán)利要求5或6所述的海量SQL語(yǔ)句合并歸類的裝置,其特征在于所述歸類模塊還包括統(tǒng)計(jì)子單元,用于統(tǒng)計(jì)所述HASH值的出現(xiàn)次數(shù)。
8.根據(jù)權(quán)利要求7所述的海量SQL語(yǔ)句合并歸類的裝置,其特征在于所述歸類模塊還包括獲取模塊,用于獲取歸類模塊統(tǒng)計(jì)的所述HASH值的出現(xiàn)次數(shù),并根據(jù)獲取到的HASH 值的出現(xiàn)次數(shù)生成相似SQL語(yǔ)句的出現(xiàn)頻率圖。
全文摘要
本發(fā)明提供一種海量SQL語(yǔ)句合并歸類的方法及裝置,其中所述方法包括S1、分析數(shù)據(jù)庫(kù)環(huán)境,采集運(yùn)行系統(tǒng)中所有的SQL語(yǔ)句;S2、對(duì)每條所述SQL語(yǔ)句進(jìn)行解析,得到所述SQL語(yǔ)句中的變量值;并將所述變量值用常量替換,得到解析后SQL語(yǔ)句;S3、計(jì)算并得到所述解析后SQL語(yǔ)句的HASH值,根據(jù)所述HASH值將所述SQL語(yǔ)句歸類合并,并將歸類合并后的結(jié)果存儲(chǔ);其中,解析后SQL語(yǔ)句相同的SQL語(yǔ)句為相似SQL語(yǔ)句。通過(guò)本發(fā)明提供的技術(shù)方案,得到了相似SQL語(yǔ)句及其唯一的HASH值,實(shí)現(xiàn)了SQL語(yǔ)句的歸類及合并;那么對(duì)于一個(gè)每天都重復(fù)著同樣的操作的被審計(jì)監(jiān)控的系統(tǒng),被原始SQL語(yǔ)句占據(jù)的空間就大大減少,這樣大大節(jié)省了存儲(chǔ)空間,數(shù)據(jù)查詢效率大幅度提升。
文檔編號(hào)G06F17/30GK102945256SQ20121039661
公開日2013年2月27日 申請(qǐng)日期2012年10月18日 優(yōu)先權(quán)日2012年10月18日
發(fā)明者鐘小東, 陳健, 賴建華, 張章學(xué), 藍(lán)友樞 申請(qǐng)人:福建省海峽信息技術(shù)有限公司