[0059]代理服務器10通過獨立的異步調用線程來將數據源查詢指令和數據源語句的執(zhí)行信息保存至存儲模塊40。
[0060]作為一種實施方式,在步驟S30中,
[0061]代理服務器可以10在收到每條數據源查詢指令和數據源語句的執(zhí)行信息后,將數據源查詢指令和數據源語句的執(zhí)行信息保存至存儲模塊40 ;
[0062]或者,
[0063]代理服務器10還可以在收到預定數量的數據源查詢指令和數據源語句的執(zhí)行信息后,一次性將預定數量的數據源查詢指令和數據源語句的執(zhí)行信息保存至存儲模塊40。
[0064]采用本發(fā)明的代理服務器、包含其的數據庫執(zhí)行信息的獲取系統(tǒng)和獲取方法,對開發(fā)人員完全透明。技術人員完全感覺不到代理服務器和代理對象的存在,原有的業(yè)務程序不需要做任何改動。
[0065]此外,采用本發(fā)明的數據源語句執(zhí)行信息的獲取系統(tǒng)和獲取方法可以滿足所有數據源SQL的監(jiān)控。無論使用的是c3p0,dbcp, weblogic的數據源還是其他,只要這些數據源是標準的DataSource接口實現(xiàn),都可以無縫的接入到代理服務器上來。
[0066]第三,本發(fā)明的代理服務器10對數據源查詢指令(即SQL語句)的攔截不影響正常業(yè)務操作。
[0067]第四,通過異步方式將數據保存到第三方介質(存儲模塊)中,同時支持批量存儲,提升了響應速度。
[0068]第五,實現(xiàn)了系統(tǒng)底層SQL執(zhí)行透明化。通過記錄數據源語句的執(zhí)行信息(SQL執(zhí)行歷史記錄),可以明細獲取SQL執(zhí)行的瓶頸及最耗時的地方達到有針對性優(yōu)化的效果。
[0069]上面對本發(fā)明的一些實施方式進行了詳細的描述。如本領域的普通技術人員所能理解的,本發(fā)明的方法和裝置的全部或者任何步驟或者部件,可以在任何計算設備(包括處理器、存儲介質等)或者計算設備的網絡中,以硬件、固件、軟件或者它們的組合加以實現(xiàn),這是本領域普通技術人員在了解本發(fā)明的內容的情況下運用他們的基本編程技能就能實現(xiàn)的,因此不需在此具體說明。
[0070]在本發(fā)明的設備和方法中,顯然,各部件或各步驟是可以分解、組合和/或分解后重新組合的。這些分解和/或重新組合應視為本發(fā)明的等效方案。還需要指出的是,執(zhí)行上述系列處理的步驟可以自然地按照說明的順序按時間順序執(zhí)行,但是并不需要一定按照時間順序執(zhí)行。某些步驟可以并行或彼此獨立地執(zhí)行。同時,在上面對本發(fā)明具體實施例的描述中,針對一種實施方式描述和/或示出的特征可以以相同或類似的方式在一個或更多個其它實施方式中使用,與其它實施方式中的特征相組合,或替代其它實施方式中的特征。
[0071]應該強調,術語“包括/包含”在本文使用時指特征、要素、步驟或組件的存在,但并不排除一個或更多個其它特征、要素、步驟或組件的存在或附加。
[0072]雖然已經詳細說明了本發(fā)明及其優(yōu)點,但是應當理解在不超出由所附的權利要求所限定的本發(fā)明的精神和范圍的情況下可以進行各種改變、替代和變換。而且,本發(fā)明的范圍不僅限于說明書所描述的過程、設備、手段、方法和步驟的具體實施例。本領域內的普通技術人員從本發(fā)明的公開內容將容易理解,根據本發(fā)明可以使用執(zhí)行與在此所述的相應實施例基本相同的功能或者獲得與其基本相同的結果的、現(xiàn)有和將來要被開發(fā)的過程、設備、手段、方法或者步驟。因此,所附的權利要求旨在在它們的范圍內包括這樣的過程、設備、手段、方法或者步驟。
【主權項】
1.一種數據庫執(zhí)行信息的獲取系統(tǒng),其特征在于,包括代理服務器、分別與代理服務器通信連接的至少一臺數據源服務器、以及分別與代理服務器通信連接的至少一臺應用服務器; 所述代理服務器用于接收所述應用服務器發(fā)送的數據庫執(zhí)行指令,所述數據庫執(zhí)行指令配置的鏈接地址為數據源服務器鏈接地址; 所述代理服務器用于創(chuàng)建代理數據源,在所述代理數據源中配置所述數據源服務器鏈接地址,將所述數據庫執(zhí)行指令中的鏈接地址修改為所述代理數據源的地址、并發(fā)送給所述數據源鏈接地址指向的數據源服務器; 所述代理服務器還用于基于所述代理數據源記錄所述數據庫執(zhí)行指令的執(zhí)行信息。
2.根據權利要求1所述的數據庫執(zhí)行信息的獲取系統(tǒng),其特征在于,還包括與所述代理服務器通信連接的存儲模塊; 所述代理服務器將所述數據源查詢指令和所述數據源語句的執(zhí)行信息保存至所述存儲豐吳塊。
3.根據權利要求2所述的數據庫執(zhí)行信息的獲取系統(tǒng),其特征在于: 所述代理服務器通過獨立的異步調用線程來將所述數據源查詢指令和所述數據源語句的執(zhí)行信息保存至存儲模塊。
4.根據權利要求3所述的數據庫執(zhí)行信息的獲取系統(tǒng),其特征在于: 所述代理服務器在收到每條所述數據源查詢指令和所述數據源語句的執(zhí)行信息后,將所述數據源查詢指令和所述數據源語句的執(zhí)行信息保存至所述存儲模塊; 或者, 所述代理服務器在收到預定數量的所述數據源查詢指令和所述數據源語句的執(zhí)行信息后,一次性將預定數量的所述數據源查詢指令和所述數據源語句的執(zhí)行信息保存至所述存儲模塊。
5.根據權利要求2-4任意一項所述的數據庫執(zhí)行信息的獲取系統(tǒng),其特征在于: 所述執(zhí)行信息包括執(zhí)行所述數據源查詢指令的執(zhí)行時間、執(zhí)行參數、所述數據源查詢指令本身、所述數據源查詢指令的類型、執(zhí)行結束時間和異常信息的一種或多種。
6.根據權利要求1-4任意一項所述的數據庫執(zhí)行信息的獲取系統(tǒng),其特征在于: 所述代理數據源包括數據庫鏈接對象、SQL語句對象和存儲過程語句對象。
7.—種代理服務器,其特征在于,包括: 接收模塊,用于接收應用服務器發(fā)送的數據庫執(zhí)行指令,所述數據庫執(zhí)行指令配置的鏈接地址為數據源服務器鏈接地址; 創(chuàng)建模塊,用于創(chuàng)建代理數據源,在所述代理數據源中配置所述數據源服務器鏈接地址,將所述數據庫執(zhí)行指令中的鏈接地址修改為所述代理數據源的地址、并發(fā)送給所述數據源鏈接地址指向的數據源服務器; 記錄模塊,用于基于所述代理數據源記錄所述數據庫執(zhí)行指令的執(zhí)行信息。
8.根據權利要求7所述的代理服務器,其特征在于: 所述記錄模塊用于將所述數據源查詢指令和所述數據源語句的執(zhí)行信息保存至外部的存儲模塊。
9.根據權利要求8所述的代理服務器,其特征在于: 所述記錄模塊通過獨立的異步調用線程來將所述數據源查詢指令和所述數據源語句的執(zhí)行信息保存至外部的存儲模塊。
10.根據權利要求9所述的代理服務器,其特征在于: 所述記錄模塊用于在收到每條所述數據源查詢指令和所述數據源語句的執(zhí)行信息后,將所述數據源查詢指令和所述數據源語句的執(zhí)行信息保存至所述存儲模塊; 或者, 所述記錄模塊用于在收到預定數量的所述數據源查詢指令和所述數據源語句的執(zhí)行信息后,一次性將預定數量的所述數據源查詢指令和所述數據源語句的執(zhí)行信息保存至所述存儲模塊。
11.根據權利要求8-10任意一項所述的代理服務器,其特征在于: 所述執(zhí)行信息包括執(zhí)行所述數據源查詢指令的執(zhí)行時間、執(zhí)行參數、所述數據源查詢指令本身、所述數據源查詢指令的類型、執(zhí)行結束時間和異常信息的一種或多種。
12.根據權利要求11所述的代理服務器,其特征在于: 所述代理數據源包括數據庫鏈接對象、SQL語句對象和存儲過程語句對象。
13.一種數據庫執(zhí)行信息的獲取方法,其特征在于,包括: 代理服務器接收應用服務器發(fā)送的數據庫執(zhí)行指令,所述數據庫執(zhí)行指令配置的鏈接地址為數據源服務器鏈接地址; 所述代理服務器創(chuàng)建代理數據源,在所述代理數據源中配置所述數據源服務器鏈接地址,將所述數據庫執(zhí)行指令中的鏈接地址修改為所述代理數據源的地址、并發(fā)送給所述數據源鏈接地址指向的數據源服務器; 所述代理服務器基于所述代理數據源記錄所述數據庫執(zhí)行指令的執(zhí)行信息。
14.根據權利要求13所述的數據庫執(zhí)行信息的獲取方法,其特征在于,所述“所述代理服務器基于所述代理數據源記錄所述數據庫執(zhí)行指令的執(zhí)行信息”具體包括: 代理服務器將所述數據源查詢指令和所述數據源語句的執(zhí)行信息保存至存儲模塊。
15.根據權利要求14所述的數據源語句執(zhí)行信息的獲取方法,其特征在于: 代理服務器通過獨立的異步調用線程來將所述數據源查詢指令和所述數據源語句的執(zhí)行信息保存至存儲模塊。
16.根據權利要求15所述的數據庫執(zhí)行信息的獲取方法,其特征在于: 代理服務器在收到每條所述數據源查詢指令和所述數據源語句的執(zhí)行信息后,將所述數據源查詢指令和所述數據源語句的執(zhí)行信息保存至存儲模塊; 或者, 代理服務器在收到預定數量的所述數據源查詢指令和所述數據源語句的執(zhí)行信息后,一次性將預定數量的所述數據源查詢指令和所述數據源語句的執(zhí)行信息保存至存儲模塊。
17.根據權利要求14-16任意一項所述的數據庫執(zhí)行信息的獲取方法,其特征在于: 所述執(zhí)行信息包括執(zhí)行所述數據源查詢指令的執(zhí)行時間、執(zhí)行參數、所述數據源查詢指令本身、所述數據源查詢指令的類型、執(zhí)行結束時間和異常信息的一種或多種。
18.根據權利要求13-16任意一項所述的數據庫執(zhí)行信息的獲取方法,其特征在于: 所述代理數據源包括數據庫鏈接對象、SQL語句對象和存儲過程語句對象。
【專利摘要】本發(fā)明涉及一種代理服務器、包含其的數據庫執(zhí)行信息的獲取系統(tǒng)和獲取方法。其中,數據庫執(zhí)行信息的獲取系統(tǒng)包括代理服務器、至少一臺數據源服務器、以及至少一臺應用服務器。代理服務器接收應用服務器發(fā)送的數據庫執(zhí)行指令,數據庫執(zhí)行指令配置的鏈接地址為數據源服務器鏈接地址;代理服務器創(chuàng)建代理數據源,在代理數據源中配置數據源服務器鏈接地址,將數據庫執(zhí)行指令中的鏈接地址修改為代理數據源的地址、并發(fā)送給數據源鏈接地址指向的數據源服務器;代理服務器還基于代理數據源記錄數據庫執(zhí)行指令的執(zhí)行信息。采用本發(fā)明的代理服務器、包含其的數據庫執(zhí)行信息的獲取系統(tǒng)和獲取方法,可以監(jiān)控SQL語句的執(zhí)行效率以及執(zhí)行參數。
【IPC分類】G06F17-30
【公開號】CN104731780
【申請?zhí)枴緾N201310698219
【發(fā)明人】紀婷琪, 佘敏, 吉惠, 冷合禮, 王旭政, 張濤, 王森, 趙晨
【申請人】青島海爾空調器有限總公司, 海爾集團公司
【公開日】2015年6月24日
【申請日】2013年12月18日