资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Oracle10g、Db2v9.5、SqlServer2000性能对比(用数据说话)1.后台调用存储过程性能对比表:动作Oracle(ms)Db2(ms)Sqlservver(mss)Dowhilee_i(100000)281ms 156 ms 2000ms Dowhilee_i_commmit(100000)734ms4400ms4000msDowhilee_u(100000)5641ms 27389mss 61000mssDowhilee_u_coommit(100000)6125ms46654mss74000mssDowhilee_d(100000)3578ms19014mss91000mssDowhilee_d_coommit(100000)4032ms45482mss69000mss结论:后台做插插入操作dbb2性能最高高、更新和删删除操作orracle性性能最高,做做批量提交与与每条提交一一次相比,ooraclee性能相差不大大,但db22、sqlsserverr性能相差比较大(除sqlseerver删删除的性能有有所下降外)。oracleDb2sqlservver时间(ms)带宽(100MMb)时间带宽(100MMb)时间带宽(100MMb)Insert(100000)6452ms3%7140ms4%7921ms3%Insert_commiit(100000)174143mms0.12%49856mss0.9%45825mss0.65%Insert_batchh(100000)250ms0.8%281ms2%7140ms3%update(100000)12405mss1%40528mss0.65%61402mss0.45%Update_commiit(100000)171392mms0.13%27342mss1%88462mss0.3%Update_batchh(100000)5859ms0.15%33154mss0.01%61573mss0.4%delete(100000)9859ms2%30029mss1%72588mss0.4%Delete_commiit(100000)160364mms0.3%50216mss0.87%119976mms0.3%Delete_batchh(100000)3469ms0.46%22826mss0.94%57480mss0.55%2.前台javva调用sqql语句性能能对比表:结论:1.jaava向orracle,db2,ssqlserrver插入入100000行数据后提提交数据,与与每插入1行行数据提交一一次的性能对对比,oraclle性能最少少提高3倍、ddb2 性能能最少提高66倍,sqllserveer性能最少少提高5倍, 如果批量处处理与批量提提交对比,oraclle性能最少少提高25倍倍,db2性性能最少提高高25倍,ssqlserrver性能能提高很小。 2. java向向oraclle,db22,sqlsserverr插入100000行数据据后提交数据据,与每插入入1行数据提提交一次的性性能对比,ooraclee的性能最高高。 3. java向向oraclle,db22,sqlsserverr更新100000行数据据后提交数据据,与每更新新1行数据提提交一次的性性能对比, oraclle性能最少少提高13倍、dbb2 性能降降低1.4倍倍,sqlsserverr性能最少提提高1.4倍, 如果批量处处理与批量提提交对比,ooraclee性能最少提提高2倍,db22性能最少提提高1.3倍,ssqlserrver性能能提高有所降降低。4. javaa向oraccle,dbb2,sqllserveer更新100000行数数据后提交数数据,与每更更新1行数据据提交一次的的性能对比, oraclle的性能最最高5. javaa向oraccle,dbb2,sqllserveer删除100000行数据后后提交数据,与与每删除1行数据据提交一次的的性能对比,oracle性能最少提高16倍、db2 性能降低1.6倍,sqlserver性能最少提高1.6倍, 如果批量处理与批量提交对比,oracle性能最少提高2.8倍,db2性能最少提高1.3倍,sqlserver性能最少提高1.2。6.java向向oraclle,db22,sqlsserverr删除100000行数据据后提交数据据,与每删除除1行数据提提交一次的性性能对比,ooraclee的性能最高高总结:后台相对对于前台性能能对比如下:1. 批量插入操作,oraclle、db22性能差不多多,sqlsserverr有所提高。2. 批量更新操作,oraclle、db22,sqlsserverr性能差不多多。3. 批量删除操作,oraclle、db22性能差不多多,sqlsserverr有所下降4. 批量提交插入操操作,oraacle、ddb2,sqqlservver性能提高较大大5. 批量提交操作,oraclle、db22性能提高较较大,sqllserveer性能差不不多。6. 批量提交操作,oraclle、db22性能提高较较大,sqlseerver有有所下降 从对对比来看后台台与前台批量量操作性能差差不多,但后后台与前台批批量提交相比比oraclle,db22性能都有较大的提提高,而sqqlservver反而有有所下降。 脚本:1.做批量插入入1. oracle:create tablle tesst (a int,bb charr(10);CREATE OR REEPLACEE PROCCEDUREE dowhhile(iin_couunt innt) as v1 INT;BEGIN v11 := iin_couunt; WHHILE vv1 00 loopp inserrt intto tesst vallues (v1, abcd); v1 := v1 - 1; -ccommitt; ENND looop;END;CREATE OR REEPLACEE PROCCEDUREE dowhhile_ccommitt(in_ccount int) as v1 INT;BEGIN v11 := iin_couunt; WHHILE vv1 00 loopp inserrt intto tesst vallues (v1, abcd); v1 := v1 - 1; ccommitt; ENND looop;END;Exec doowhilee(100000); 发费时间:00.281秒秒Exec doowhilee_commmit(100000); 发费时间:00.734秒秒2. db2:create tablle tesst (a int,bb charr(10);CREATE PROCEEDURE YDGFTTEST011.DOWHHILE (IN INN_COUNNT intt) LANGUAGGE SQLLSPECIFIIC DOWWHILEBEGIN DECLAREE v1 intt; set v11=in_ccount; while v10 do insertt intoo testt valuues(v11,abccd);SET v1=v1-1; end whhile;ENDCREATE PROCEEDURE YDGFTTEST011.DOWHHILE_CCOMMITT (IN IN_COOUNT iint) LANGUAGGE SQLLSPECIFIIC DOWWHILE_COMMIITBEGIN DECLAREE v1 intt; set v11=in_ccount; while v10 do insertt intoo testt valuues(v11,abccd); committ;SET v1=v1-1; end whhile;ENDCall doowhilee(100000)发费时间: 00.156 秒Call doowhilee_commmit(100000)发费时间:444秒3. sqlservver:create tablle tesst (a int,bb charr(10);create proocedurre dowwhile in_ccount intasbegin declaare vv1 intt selecct v11=in_counttwhile (v100) begin inseert innto teest vaalues(v1,abcd) seleect vv1=v11-1 endendcreate proocedurre dowwhile_commiit inn_counnt inttasbegin declaare vv1 intt selecct v11=in_counttwhile (v100) begin inseert innto teest vaalues(v1,abcd) commmit seleect vv1=v11-1 endendexec doowhilee 100000发费时间:2秒秒Exec doowhilee_commmit 100000发费时间:4秒秒2.做批量更新新1.oraclle CREATTE OR REPLAACE Prroceduure Doowhilee_u(Inn_Counnt Intt) As V1 Innt;Begin V1 := In_CCount; Whilee V1 0 Looop Upddate ttest Sett b=frttg Wheere a=v1; V1 := V11 - 1; End LLoop;End;CREATE OR REEPLACEE Procceduree Dowhhile_uu_commmit(Inn_Counnt Intt) As V1 Innt;Begin V1 := In_CCount; Whilee V1 0 Looop Upddate ttest Sett b=frttg Wheere a=v1;
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号