本發(fā)明專利技術(shù)公開了一種數(shù)據(jù)庫變更對現(xiàn)有業(yè)務(wù)影響的快速偵測方法,包括如下步驟:a)在測試環(huán)境安裝與生產(chǎn)系統(tǒng)相同的操作系統(tǒng)和數(shù)據(jù)庫軟件;b)將生產(chǎn)系統(tǒng)的數(shù)據(jù)庫中元數(shù)據(jù)同步到測試環(huán)境的數(shù)據(jù)庫中,統(tǒng)計與更數(shù)據(jù)庫表變更相關(guān)的SQL信息并同步到測試環(huán)境的數(shù)據(jù)庫中;c)在測試環(huán)境的數(shù)據(jù)庫中模擬生產(chǎn)系統(tǒng)數(shù)據(jù)庫將要進行的變更,并生成變更后執(zhí)行計劃;d)對比分析變更前后測試環(huán)境數(shù)據(jù)庫的性能變化,獲取訪問受影響的SQL語句。本發(fā)明專利技術(shù)提供的數(shù)據(jù)庫變更對現(xiàn)有業(yè)務(wù)影響的快速偵測方法,不需要搭建與生產(chǎn)環(huán)境一樣的測試環(huán)境,避免了海量數(shù)據(jù)的同步所需的大量時間和人力成本,且能準確快速地偵測數(shù)據(jù)庫變更對現(xiàn)有業(yè)務(wù)影響。
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)涉及一種數(shù)據(jù)庫處理方法,尤其涉及。
技術(shù)介紹
大型信息系統(tǒng)運行維護期間,功能的增加、修改,以及一些模塊的性能優(yōu)化是常規(guī)的工作,比如說移動BOSS系統(tǒng),新業(yè)務(wù)的上線、話費套餐的變更等。要完成這些工作,就有可能需要對數(shù)據(jù)庫的表結(jié)構(gòu)、索引結(jié)構(gòu)進行變更,比如說表增加、修改、刪除字段和索引,這有可能造成數(shù)據(jù)庫訪問語句執(zhí)行效率變差,影響系統(tǒng)正常的業(yè)務(wù)功能。為了避免這種情況,必須要在執(zhí)行數(shù)據(jù)庫更改前對在測試環(huán)境對更改進行性能測試,該測試要驗證系統(tǒng)變更后的穩(wěn)定性,評估數(shù)據(jù)庫變更的對系統(tǒng)造成的風險。現(xiàn)有技術(shù)對于數(shù)據(jù)庫變更對系統(tǒng)的影響,一般是采用端到端的測試,首先要搭建跟生產(chǎn)環(huán)境相似的測試環(huán)境,包括前端的應(yīng)用程序、中間件以及數(shù)據(jù)庫環(huán)境,并且需要將生產(chǎn)環(huán)境的海量數(shù)據(jù)同步到測試環(huán)境。測試環(huán)境搭建好了以后,在測試庫模擬進行數(shù)據(jù)庫變更,然后根據(jù)數(shù)據(jù)庫變更的情況,設(shè)計測試用例來測試數(shù)據(jù)庫更改可能影響到業(yè)務(wù)模塊的性能狀況。由于現(xiàn)有的大型信息系統(tǒng)(BOSS系統(tǒng))至少包括展示層、業(yè)務(wù)邏輯層、數(shù)據(jù)層等多個層次,而且涉及多種開發(fā)語言和中間件,架構(gòu)非常復(fù)雜,所以設(shè)計出良好的用例非常困難,只能通過設(shè)計大量的測試用例來準確覆蓋與數(shù)據(jù)庫變更相關(guān)的訪問語句。現(xiàn)有技術(shù)的測試方案,是從外圍端到端的測試,需要搭建與生產(chǎn)環(huán)境一樣的測試環(huán)境,包括數(shù)據(jù)庫環(huán)境、中間件環(huán)境、網(wǎng)絡(luò)環(huán)境、應(yīng)用程序等,需要投入大量的人力物力,而且也會耗費大量的時間,不適合這種常規(guī)的系統(tǒng)變更。而且,由于大型信息系統(tǒng)結(jié)構(gòu)的復(fù)雜性,要找出與數(shù)據(jù)庫變更相關(guān)的模塊和功能點,是非常困難的,所以測試案例很難精確覆蓋數(shù)據(jù)庫變更的影響點,測試效果不能保證,執(zhí)行數(shù)據(jù)庫變更會存在很多未知的風險。
技術(shù)實現(xiàn)思路
本專利技術(shù)所要解決的技術(shù)問題是提供,不需要搭建與生產(chǎn)環(huán)境一樣的測試環(huán)境,避免了海量數(shù)據(jù)的同步所需的大量時間和人力成本,且能準確快速地偵測數(shù)據(jù)庫變更對現(xiàn)有業(yè)務(wù)影響。本專利技術(shù)為解決上述技術(shù)問題而采用的技術(shù)方案是提供,包括如下步驟:a)在測試環(huán)境安裝與生產(chǎn)系統(tǒng)相同的操作系統(tǒng)和數(shù)據(jù)庫軟件;b)將生產(chǎn)系統(tǒng)的數(shù)據(jù)庫中元數(shù)據(jù)同步到測試環(huán)境的數(shù)據(jù)庫中,統(tǒng)計與更數(shù)據(jù)庫表變更相關(guān)的SQL信息并同步到測試環(huán)境的數(shù)據(jù)庫中;c)在測試環(huán)境的數(shù)據(jù)庫中模擬生產(chǎn)系統(tǒng)數(shù)據(jù)庫將要進行的變更,并生成變更后執(zhí)行計劃;d)對比分析變更前后測試環(huán)境數(shù)據(jù)庫的性能變化,獲取訪問受影響的SQL語句。上述的數(shù)據(jù)庫變更對現(xiàn)有業(yè)務(wù)影響的快速偵測方法,其中,所述步驟a)中的數(shù)據(jù)庫為ORACLE數(shù)據(jù)庫,所述步驟b)通過手工生成執(zhí)行自動負載信息庫快照獲取生產(chǎn)系統(tǒng)的數(shù)據(jù)庫中元數(shù)據(jù),并統(tǒng)計提取與數(shù)據(jù)庫表變更相關(guān)的SQL語句和SQL執(zhí)行計劃,存放到中間表。上述的數(shù)據(jù)庫變更對現(xiàn)有業(yè)務(wù)影響的快速偵測方法,其中,所述步驟b)在生產(chǎn)系統(tǒng)的數(shù)據(jù)庫將導出統(tǒng)計需要的權(quán)限賦值給sys用戶,所述測試環(huán)境的數(shù)據(jù)庫先刪除sys用戶下的統(tǒng)計信息,然后通過ORACLE系統(tǒng)導入從生產(chǎn)系統(tǒng)的數(shù)據(jù)庫同步過來的統(tǒng)計信息。上述的數(shù)據(jù)庫變更對現(xiàn)有業(yè)務(wù)影響的快速偵測方法,其中,所述步驟b)中的元數(shù)據(jù)包括表結(jié)構(gòu)和索引信息,所述SQL執(zhí)行計劃包括經(jīng)過ORACLE數(shù)據(jù)庫優(yōu)化器處理后的SQL語句的操作順序和操作類型。上述的數(shù)據(jù)庫變更對現(xiàn)有業(yè)務(wù)影響的快速偵測方法,其中,所述數(shù)據(jù)庫表變更相關(guān)的SQL語句包括表連接和/或嵌套子查詢,所述SQL執(zhí)行計劃的統(tǒng)計優(yōu)化過程如下:使用ORACLE數(shù)據(jù)庫的DBMS_STATS包或analyze命令手動獲取用于存儲CPU統(tǒng)計信息的AUX_STATS$表,以及用于存儲I/O統(tǒng)計信息的X$KCF10表;計算SQL語句的cpu執(zhí)行成本cpu_cost:cpu_cost = cpu循環(huán)次數(shù)/ (cpu速度*單塊讀取的時間));計算SQL語句的1執(zhí)行成本1_cost:1_cost =單塊讀取的數(shù)量+多塊讀取的數(shù)量*多塊讀取的時間/單塊讀取的時間;根據(jù)統(tǒng)計信息中SQL語句的cpu執(zhí)行成本與1執(zhí)行成本之和的大小選擇SQL語句操作類型以及操作順序。本專利技術(shù)對比現(xiàn)有技術(shù)有如下的有益效果:本專利技術(shù)提供的數(shù)據(jù)庫變更對現(xiàn)有業(yè)務(wù)影響的快速偵測方法,通過同步表結(jié)構(gòu)、統(tǒng)計與更數(shù)據(jù)庫表變更相關(guān)的SQL語句和SQL執(zhí)行計劃信息等輕量級數(shù)據(jù),而不需要搭建與生產(chǎn)環(huán)境一樣的測試環(huán)境,避免了海量數(shù)據(jù)的同步所需的大量時間和人力成本,由于測試庫同步了生產(chǎn)庫的優(yōu)化器統(tǒng)計信息,而SQL執(zhí)行計劃只跟優(yōu)化器的統(tǒng)計信息相關(guān),所以在測試庫上生成的執(zhí)行計劃完全能說明生產(chǎn)庫在數(shù)據(jù)庫變更之后SQL語句的執(zhí)行計劃情況,從而準確快速地偵測數(shù)據(jù)庫變更對現(xiàn)有業(yè)務(wù)影響。【附圖說明】圖1為本專利技術(shù)數(shù)據(jù)庫變更影響的快速偵測系統(tǒng)架構(gòu)示意圖;圖2為本專利技術(shù)數(shù)據(jù)庫變更影響的快速偵測流程示意圖。【具體實施方式】下面結(jié)合附圖和實施例對本專利技術(shù)作進一步的描述。圖1為本專利技術(shù)數(shù)據(jù)庫變更影響的快速偵測系統(tǒng)架構(gòu)示意圖;圖2為本專利技術(shù)數(shù)據(jù)庫變更影響的快速偵測流程示意圖。請參見圖1和圖2,本專利技術(shù)提供的數(shù)據(jù)庫變更對現(xiàn)有業(yè)務(wù)影響的快速偵測方法,包括如下步驟:步驟S1:在測試環(huán)境安裝與生產(chǎn)系統(tǒng)相同的操作系統(tǒng)和數(shù)據(jù)庫軟件;步驟S2:將生產(chǎn)系統(tǒng)的數(shù)據(jù)庫中元數(shù)據(jù)同步到測試環(huán)境的數(shù)據(jù)庫中,統(tǒng)計與更數(shù)據(jù)庫表變更相關(guān)的SQL信息并同步到測試環(huán)境的數(shù)據(jù)庫中;步驟S3:在測試環(huán)境的數(shù)據(jù)庫中模擬生產(chǎn)系統(tǒng)數(shù)據(jù)庫將要進行的變更,并生成變更后執(zhí)行計劃;步驟S4:對比分析變更前后測試環(huán)境數(shù)據(jù)庫的性能變化,獲取訪問受影響的SQL語句。信息系統(tǒng)的各個模塊通過數(shù)據(jù)庫訪問語句,如機構(gòu)化查詢語言(SQL, StructureQuery Language)訪問數(shù)據(jù)庫。數(shù)據(jù)庫的更改,直接影響的是SQL的執(zhí)行效率,從而影響包含這些SQL的應(yīng)用程序模塊。SQL語句的執(zhí)行效率在軟硬件環(huán)境相同的情況下,只跟SQL執(zhí)行計劃相關(guān),對于復(fù)雜的SQL語句(包含表連接、嵌套子查詢等),執(zhí)行計劃可能幾十種甚至上百種,但是數(shù)據(jù)庫會根據(jù)一定的規(guī)則或者統(tǒng)計信息(statistics)去選擇一個執(zhí)行計劃,對于ORACLE數(shù)據(jù)庫,優(yōu)化器有兩大類,基于規(guī)則(RBO)和基于成本(CBO)。在CBO規(guī)則下,數(shù)據(jù)庫根據(jù)搜集的表和索引的數(shù)據(jù)的統(tǒng)計信息,綜合來決定選取一個數(shù)據(jù)庫認為最優(yōu)的執(zhí)行計劃,優(yōu)化器統(tǒng)計信息存儲在ORACLE數(shù)據(jù)庫系統(tǒng)用戶下的相關(guān)表中,ORACLE通過建立自帶的視圖來展現(xiàn)優(yōu)化器的統(tǒng)計信息,比如:AUX_STATS$存儲CPU統(tǒng)計信息,X$KCF10存儲I/O統(tǒng)計信息,而與表的有關(guān)統(tǒng)計信息的視圖為 DBA_TABLES、DBA_OBJECT_TABLES、DBA_TAB_STATISTICS、DBA_TAB_COL_STATISTICS等。因為數(shù)據(jù)庫中的對象會經(jīng)常的變化,所以統(tǒng)計信息必須有規(guī)律的更新以便更加準確的描述這些數(shù)據(jù)庫對象。統(tǒng)計信息默認是由ORACLE自動維護的,不過也可以用DBMS_STATS包或這analyze命令來手動收集統(tǒng)計信息。本專利技術(shù)提供的數(shù)據(jù)庫變更對現(xiàn)有業(yè)務(wù)影響的快速偵測方法,在CBO規(guī)則下sql的執(zhí)行成本計算公式為:cost = 1_cost+cpu_cost (也就是執(zhí)行成本為1成本加上cpu成本)1成本和cpu成本的計算公式如下:1_cost =單塊讀取的數(shù)量+多塊讀取的數(shù)量*多塊讀取的時間/單塊讀取的時間cpu_co本文檔來自技高網(wǎng)...
【技術(shù)保護點】
一種數(shù)據(jù)庫變更對現(xiàn)有業(yè)務(wù)影響的快速偵測方法,其特征在于,包括如下步驟:a)在測試環(huán)境安裝與生產(chǎn)系統(tǒng)相同的操作系統(tǒng)和數(shù)據(jù)庫軟件;b)將生產(chǎn)系統(tǒng)的數(shù)據(jù)庫中元數(shù)據(jù)同步到測試環(huán)境的數(shù)據(jù)庫中,統(tǒng)計與更數(shù)據(jù)庫表變更相關(guān)的SQL信息并同步到測試環(huán)境的數(shù)據(jù)庫中;c)在測試環(huán)境的數(shù)據(jù)庫中模擬生產(chǎn)系統(tǒng)數(shù)據(jù)庫將要進行的變更,并生成變更后執(zhí)行計劃;d)對比分析變更前后測試環(huán)境數(shù)據(jù)庫的性能變化,獲取訪問受影響的SQL語句。
【技術(shù)特征摘要】
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:梁猛,陳曦,
申請(專利權(quán))人:梁猛,陳曦,
類型:發(fā)明
國別省市:廣東;44
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。