扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:盖国强 来源:eygle.com 2007年9月17日
关键字: 盖国强 Oracle 10g ORACLE
此前写过两篇文章,介绍ITL竞争的模拟,有朋友在留言版上留言无法模拟,经过询问,得知在Oracle10g上无法再现我的试验结果.
首先猜测是Oracle10g的处理方式不同,我决定动手来验证一下,首先在Oracle9i中,创建一个测试表,设置MAXTRANS参数,结果如下:
SQL> connect eygle/eygle Table created. SQL> select table_name,INI_TRANS,MAX_TRANS from user_tables where table_name='EYGLE_ITL'; TABLE_NAME INI_TRANS MAX_TRANS |
而在Oracle10g中,我们注意到MAXTRANS参数的设置已经无效:
[oracle@danaly ~]$ sqlplus eygle/eygle SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jun 26 11:59:20 2006
SQL> CREATE TABLE EYGLE_ITL Table created. SQL> select table_name,INI_TRANS,MAX_TRANS from user_tables where table_name='EYGLE_ITL'; TABLE_NAME INI_TRANS MAX_TRANS |
我们注意到,不管如何设置,最终的MAX_TRANS都是255。
查阅Oracle手册得到如下说明:
Note:In earlier releases of Oracle Database, the MAXTRANS parameter limited the number of transaction entries that could concurrently use data in a data block. This parameter has been deprecated.
Oracle Database now automatically allows up to 255 concurrent update transactions for any data block, depending on the available space in the block.
The database ignores MAXTRANS when specified by users only for new objects created when the COMPATIBLE initialization parameter is set to 10.0 or greater.
也就是说在Oracle10g中,对于单个数据块,Oracle缺省最大支持255个并发,MAXTRANS参数被废弃。
这就是网友在10g上无法模拟我的结果的原因。
濠电姷顣介埀顒€鍟块埀顒€缍婇幃妯诲緞閹邦剛鐣洪梺闈浥堥弲婊勬叏濠婂牊鍋ㄦい鏍ㄧ〒閹藉啴鏌熼悜鈺傛珚鐎规洘宀稿畷鍫曞煛閸屾粍娈搁梻浣筋嚃閸ㄤ即宕㈤弽顐ュС闁挎稑瀚崰鍡樸亜閵堝懎濮┑鈽嗗亝濠㈡ê螞濡ゅ懏鍋傛繛鍡樻尭鐎氬鏌嶈閸撶喎顕i渚婄矗濞撴埃鍋撻柣娑欐崌閺屾稑鈹戦崨顕呮▊缂備焦顨呴惌鍌炵嵁鎼淬劌鐒垫い鎺戝鐎氬銇勯弽銊ф噥缂佽妫濋弻鐔碱敇瑜嶉悘鑼磼鏉堛劎绠為柡灞芥喘閺佹劙宕熼鐘虫緰闂佽崵濮抽梽宥夊垂閽樺)锝夊礋椤栨稑娈滈梺纭呮硾椤洟鍩€椤掆偓閿曪妇妲愰弮鍫濈闁绘劕寮Δ鍛厸闁割偒鍋勯悘锕傛煕鐎n偆澧紒鍌涘笧閹瑰嫰鎼圭憴鍕靛晥闂備礁鎼€氱兘宕归柆宥呯;鐎广儱顦伴崕宥夋煕閺囥劌澧ù鐘趁湁闁挎繂妫楅埢鏇㈡煃瑜滈崜姘跺蓟閵娧勵偨闁绘劕顕埢鏇㈡倵閿濆倹娅囨い蹇涗憾閺屾洟宕遍鐔奉伓