欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)庫變更對(duì)現(xiàn)有業(yè)務(wù)影響的快速偵測(cè)方法

文檔序號(hào):8543778閱讀:506來源:國知局
一種數(shù)據(jù)庫變更對(duì)現(xiàn)有業(yè)務(wù)影響的快速偵測(cè)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)據(jù)庫處理方法,尤其涉及一種數(shù)據(jù)庫變更對(duì)現(xiàn)有業(yè)務(wù)影響的快速偵測(cè)方法。
【背景技術(shù)】
[0002]大型信息系統(tǒng)運(yùn)行維護(hù)期間,功能的增加、修改,以及一些模塊的性能優(yōu)化是常規(guī)的工作,比如說移動(dòng)BOSS系統(tǒng),新業(yè)務(wù)的上線、話費(fèi)套餐的變更等。要完成這些工作,就有可能需要對(duì)數(shù)據(jù)庫的表結(jié)構(gòu)、索引結(jié)構(gòu)進(jìn)行變更,比如說表增加、修改、刪除字段和索引,這有可能造成數(shù)據(jù)庫訪問語句執(zhí)行效率變差,影響系統(tǒng)正常的業(yè)務(wù)功能。為了避免這種情況,必須要在執(zhí)行數(shù)據(jù)庫更改前對(duì)在測(cè)試環(huán)境對(duì)更改進(jìn)行性能測(cè)試,該測(cè)試要驗(yàn)證系統(tǒng)變更后的穩(wěn)定性,評(píng)估數(shù)據(jù)庫變更的對(duì)系統(tǒng)造成的風(fēng)險(xiǎn)。
[0003]現(xiàn)有技術(shù)對(duì)于數(shù)據(jù)庫變更對(duì)系統(tǒng)的影響,一般是采用端到端的測(cè)試,首先要搭建跟生產(chǎn)環(huán)境相似的測(cè)試環(huán)境,包括前端的應(yīng)用程序、中間件以及數(shù)據(jù)庫環(huán)境,并且需要將生產(chǎn)環(huán)境的海量數(shù)據(jù)同步到測(cè)試環(huán)境。測(cè)試環(huán)境搭建好了以后,在測(cè)試庫模擬進(jìn)行數(shù)據(jù)庫變更,然后根據(jù)數(shù)據(jù)庫變更的情況,設(shè)計(jì)測(cè)試用例來測(cè)試數(shù)據(jù)庫更改可能影響到業(yè)務(wù)模塊的性能狀況。由于現(xiàn)有的大型信息系統(tǒng)(BOSS系統(tǒng))至少包括展示層、業(yè)務(wù)邏輯層、數(shù)據(jù)層等多個(gè)層次,而且涉及多種開發(fā)語言和中間件,架構(gòu)非常復(fù)雜,所以設(shè)計(jì)出良好的用例非常困難,只能通過設(shè)計(jì)大量的測(cè)試用例來準(zhǔn)確覆蓋與數(shù)據(jù)庫變更相關(guān)的訪問語句。
[0004]現(xiàn)有技術(shù)的測(cè)試方案,是從外圍端到端的測(cè)試,需要搭建與生產(chǎn)環(huán)境一樣的測(cè)試環(huán)境,包括數(shù)據(jù)庫環(huán)境、中間件環(huán)境、網(wǎng)絡(luò)環(huán)境、應(yīng)用程序等,需要投入大量的人力物力,而且也會(huì)耗費(fèi)大量的時(shí)間,不適合這種常規(guī)的系統(tǒng)變更。而且,由于大型信息系統(tǒng)結(jié)構(gòu)的復(fù)雜性,要找出與數(shù)據(jù)庫變更相關(guān)的模塊和功能點(diǎn),是非常困難的,所以測(cè)試案例很難精確覆蓋數(shù)據(jù)庫變更的影響點(diǎn),測(cè)試效果不能保證,執(zhí)行數(shù)據(jù)庫變更會(huì)存在很多未知的風(fēng)險(xiǎn)。

【發(fā)明內(nèi)容】

[0005]本發(fā)明所要解決的技術(shù)問題是提供一種數(shù)據(jù)庫變更對(duì)現(xiàn)有業(yè)務(wù)影響的快速偵測(cè)方法,不需要搭建與生產(chǎn)環(huán)境一樣的測(cè)試環(huán)境,避免了海量數(shù)據(jù)的同步所需的大量時(shí)間和人力成本,且能準(zhǔn)確快速地偵測(cè)數(shù)據(jù)庫變更對(duì)現(xiàn)有業(yè)務(wù)影響。
[0006]本發(fā)明為解決上述技術(shù)問題而采用的技術(shù)方案是提供一種數(shù)據(jù)庫變更對(duì)現(xiàn)有業(yè)務(wù)影響的快速偵測(cè)方法,包括如下步驟:a)在測(cè)試環(huán)境安裝與生產(chǎn)系統(tǒng)相同的操作系統(tǒng)和數(shù)據(jù)庫軟件;b)將生產(chǎn)系統(tǒng)的數(shù)據(jù)庫中元數(shù)據(jù)同步到測(cè)試環(huán)境的數(shù)據(jù)庫中,統(tǒng)計(jì)與更數(shù)據(jù)庫表變更相關(guān)的SQL信息并同步到測(cè)試環(huán)境的數(shù)據(jù)庫中;c)在測(cè)試環(huán)境的數(shù)據(jù)庫中模擬生產(chǎn)系統(tǒng)數(shù)據(jù)庫將要進(jìn)行的變更,并生成變更后執(zhí)行計(jì)劃;d)對(duì)比分析變更前后測(cè)試環(huán)境數(shù)據(jù)庫的性能變化,獲取訪問受影響的SQL語句。
[0007]上述的數(shù)據(jù)庫變更對(duì)現(xiàn)有業(yè)務(wù)影響的快速偵測(cè)方法,其中,所述步驟a)中的數(shù)據(jù)庫為ORACLE數(shù)據(jù)庫,所述步驟b)通過手工生成執(zhí)行自動(dòng)負(fù)載信息庫快照獲取生產(chǎn)系統(tǒng)的數(shù)據(jù)庫中元數(shù)據(jù),并統(tǒng)計(jì)提取與數(shù)據(jù)庫表變更相關(guān)的SQL語句和SQL執(zhí)行計(jì)劃,存放到中間表。
[0008]上述的數(shù)據(jù)庫變更對(duì)現(xiàn)有業(yè)務(wù)影響的快速偵測(cè)方法,其中,所述步驟b)在生產(chǎn)系統(tǒng)的數(shù)據(jù)庫將導(dǎo)出統(tǒng)計(jì)需要的權(quán)限賦值給sys用戶,所述測(cè)試環(huán)境的數(shù)據(jù)庫先刪除sys用戶下的統(tǒng)計(jì)信息,然后通過ORACLE系統(tǒng)導(dǎo)入從生產(chǎn)系統(tǒng)的數(shù)據(jù)庫同步過來的統(tǒng)計(jì)信息。
[0009]上述的數(shù)據(jù)庫變更對(duì)現(xiàn)有業(yè)務(wù)影響的快速偵測(cè)方法,其中,所述步驟b)中的元數(shù)據(jù)包括表結(jié)構(gòu)和索引信息,所述SQL執(zhí)行計(jì)劃包括經(jīng)過ORACLE數(shù)據(jù)庫優(yōu)化器處理后的SQL語句的操作順序和操作類型。
[0010]上述的數(shù)據(jù)庫變更對(duì)現(xiàn)有業(yè)務(wù)影響的快速偵測(cè)方法,其中,所述數(shù)據(jù)庫表變更相關(guān)的SQL語句包括表連接和/或嵌套子查詢,所述SQL執(zhí)行計(jì)劃的統(tǒng)計(jì)優(yōu)化過程如下:
[0011]使用ORACLE數(shù)據(jù)庫的DBMS_STATS包或analyze命令手動(dòng)獲取用于存儲(chǔ)CPU統(tǒng)計(jì)信息的AUX_STATS$表,以及用于存儲(chǔ)I/O統(tǒng)計(jì)信息的X$KCF10表;
[0012]計(jì)算SQL語句的cpu執(zhí)行成本cpu_cost:cpu_cost = cpu循環(huán)次數(shù)/ (cpu速度*單塊讀取的時(shí)間));
[0013]計(jì)算SQL語句的1執(zhí)行成本1_cost:1_cost =單塊讀取的數(shù)量+多塊讀取的數(shù)量*多塊讀取的時(shí)間/單塊讀取的時(shí)間;
[0014]根據(jù)統(tǒng)計(jì)信息中SQL語句的cpu執(zhí)行成本與1執(zhí)行成本之和的大小選擇SQL語句操作類型以及操作順序。
[0015]本發(fā)明對(duì)比現(xiàn)有技術(shù)有如下的有益效果:本發(fā)明提供的數(shù)據(jù)庫變更對(duì)現(xiàn)有業(yè)務(wù)影響的快速偵測(cè)方法,通過同步表結(jié)構(gòu)、統(tǒng)計(jì)與更數(shù)據(jù)庫表變更相關(guān)的SQL語句和SQL執(zhí)行計(jì)劃信息等輕量級(jí)數(shù)據(jù),而不需要搭建與生產(chǎn)環(huán)境一樣的測(cè)試環(huán)境,避免了海量數(shù)據(jù)的同步所需的大量時(shí)間和人力成本,由于測(cè)試庫同步了生產(chǎn)庫的優(yōu)化器統(tǒng)計(jì)信息,而SQL執(zhí)行計(jì)劃只跟優(yōu)化器的統(tǒng)計(jì)信息相關(guān),所以在測(cè)試庫上生成的執(zhí)行計(jì)劃完全能說明生產(chǎn)庫在數(shù)據(jù)庫變更之后SQL語句的執(zhí)行計(jì)劃情況,從而準(zhǔn)確快速地偵測(cè)數(shù)據(jù)庫變更對(duì)現(xiàn)有業(yè)務(wù)影響。
【附圖說明】
[0016]圖1為本發(fā)明數(shù)據(jù)庫變更影響的快速偵測(cè)系統(tǒng)架構(gòu)示意圖;
[0017]圖2為本發(fā)明數(shù)據(jù)庫變更影響的快速偵測(cè)流程示意圖。
【具體實(shí)施方式】
[0018]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的描述。
[0019]圖1為本發(fā)明數(shù)據(jù)庫變更影響的快速偵測(cè)系統(tǒng)架構(gòu)示意圖;圖2為本發(fā)明數(shù)據(jù)庫變更影響的快速偵測(cè)流程示意圖。
[0020]請(qǐng)參見圖1和圖2,本發(fā)明提供的數(shù)據(jù)庫變更對(duì)現(xiàn)有業(yè)務(wù)影響的快速偵測(cè)方法,包括如下步驟:
[0021]步驟S1:在測(cè)試環(huán)境安裝與生產(chǎn)系統(tǒng)相同的操作系統(tǒng)和數(shù)據(jù)庫軟件;
[0022]步驟S2:將生產(chǎn)系統(tǒng)的數(shù)據(jù)庫中元數(shù)據(jù)同步到測(cè)試環(huán)境的數(shù)據(jù)庫中,統(tǒng)計(jì)與更數(shù)據(jù)庫表變更相關(guān)的SQL信息并同步到測(cè)試環(huán)境的數(shù)據(jù)庫中;
[0023]步驟S3:在測(cè)試環(huán)境的數(shù)據(jù)庫中模擬生產(chǎn)系統(tǒng)數(shù)據(jù)庫將要進(jìn)行的變更,并生成變更后執(zhí)行計(jì)劃;
[0024]步驟S4:對(duì)比分析變更前后測(cè)試環(huán)境數(shù)據(jù)庫的性能變化,獲取訪問受影響的SQL語句。
[0025]信息系統(tǒng)的各個(gè)模塊通過數(shù)據(jù)庫訪問語句,如機(jī)構(gòu)化查詢語言(SQL, StructureQuery Language)訪問數(shù)據(jù)庫。數(shù)據(jù)庫的更改,直接影響的是SQL的執(zhí)行效率,從而影響包含這些SQL的應(yīng)用程序模塊。
[0026]SQL語句的執(zhí)行效率在軟硬件環(huán)境相同的情況下,只跟SQL執(zhí)行計(jì)劃相關(guān),對(duì)于復(fù)雜的SQL語句(包含表連接、嵌套子查詢等),執(zhí)行計(jì)劃可能幾十種甚至上百種,但是數(shù)據(jù)庫會(huì)根據(jù)一定的規(guī)則或者統(tǒng)計(jì)信息(statistics)去選擇一個(gè)執(zhí)行計(jì)劃,對(duì)于ORACLE數(shù)據(jù)庫,優(yōu)化器有兩大類,基于規(guī)則(RBO)和基于成本(CBO)。在CBO規(guī)則下,數(shù)據(jù)庫根據(jù)搜集的表和索引的數(shù)據(jù)的統(tǒng)計(jì)信息,綜合來決定選取一個(gè)數(shù)據(jù)庫認(rèn)為最優(yōu)的執(zhí)行計(jì)劃,優(yōu)化器統(tǒng)計(jì)信息存儲(chǔ)在ORACLE數(shù)據(jù)庫系統(tǒng)用戶下的相關(guān)表中,ORACLE通過建立自帶的視圖來展現(xiàn)優(yōu)化器的統(tǒng)計(jì)信息,比如:AUX_STATS$存儲(chǔ)CPU統(tǒng)計(jì)信息,X$KCF10存儲(chǔ)I/O統(tǒng)計(jì)信息,而與表的有關(guān)統(tǒng)計(jì)信息的視圖為 DBA_TABLES、DBA_OBJECT_TABLES、DBA_TAB_STATISTICS、DBA_TAB_COL_STATISTICS等。因?yàn)閿?shù)據(jù)庫中的對(duì)象會(huì)經(jīng)常的變化,所以統(tǒng)計(jì)信息必須有規(guī)律的更新以便更加準(zhǔn)確的描述這些數(shù)據(jù)庫對(duì)象。統(tǒng)計(jì)信息默認(rèn)是由ORACLE自動(dòng)維護(hù)的,不過也可以用DBMS_STATS包或這analyze命令來手動(dòng)收集統(tǒng)計(jì)信息。
[0027]本發(fā)明提供的數(shù)據(jù)庫變更對(duì)現(xiàn)有業(yè)務(wù)影響的快速偵測(cè)方法,在CBO規(guī)則下sql的執(zhí)行成本計(jì)算公式為:
[0028]cost = 1_cost+cpu_cost (也就是執(zhí)行成本為1成本加上cpu成本)
[0029]1成本和cpu成本的計(jì)算公式如下:
[0030]1_cost =單塊讀取的數(shù)量+多塊讀取的數(shù)量*多塊讀取的時(shí)間/單塊讀取的時(shí)間
[0031]cpu_cost = cpu循環(huán)次數(shù)/ (cpu速度*單塊讀取的時(shí)間))
[0032]在軟硬件環(huán)境相同的情況下,cpu速度、單塊讀取的時(shí)間、多塊讀取的時(shí)間是相對(duì)穩(wěn)定的,所以sql執(zhí)行成本只跟單塊讀取的數(shù)量、多塊讀取的數(shù)量、cpu循環(huán)次數(shù)相關(guān),而在軟硬件環(huán)境一樣的情況下,這三個(gè)指標(biāo)完全由SQL的執(zhí)行計(jì)劃中操作順序、操作類型決定。
[0033]現(xiàn)有的技術(shù)要偵測(cè)數(shù)據(jù)庫更改對(duì)執(zhí)行計(jì)劃
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
枣庄市| 安达市| 石屏县| 广丰县| 南京市| 西吉县| 汉沽区| 青海省| 永安市| 嘉兴市| 东宁县| 大邑县| 德钦县| 清镇市| 包头市| 潮州市| 扶风县| 淳化县| 滨海县| 册亨县| 新巴尔虎左旗| 大荔县| 通渭县| 泸州市| 涪陵区| 肥东县| 福清市| 同仁县| 安康市| 延长县| 金寨县| 新沂市| 静宁县| 汝州市| 永定县| 鄂温| 蒲江县| 乐安县| 郁南县| 大安市| 枝江市|