1、查询每秒最高需要的undo的数据块【每个块8k大小】
sys@ORA11> select max(undoblks / ((end_time - begin_time)*24*3600)) from v$undostat; MAX(UNDOBLKS/((END_TIME-BEGIN_TIME)*24*3600)) --------------------------------------------- 3.56666667
2、查询undo_retention大小
sys@ORA11> show parameter undo NAME TYPE VALUE ------------------------------------ ---------------------- ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS1
3、查询db_block_size大小
sys@ORA11> show parameter block_size NAME TYPE VALUE ------------------------------------ ---------------------- ------------------------------ db_block_size integer 8192
所以undo大小可以定位8k*3.56666667数据块*900秒
8k*900秒=7200k=7.2M*3.5666块=undo块需要设置的大小【实际大小应该大于计算出来的值】