oracle redo与undo_笔记5:测量redo
测量redo
要查看生成的redo量相当简单。使用SQL*Plus的内置特性AUTOTRACE。不过AUTOTRACE只能用于简单的DML,对其他操作就力所不能及了,例如,它无法查看一个存储过程调用做了什么。
下面来看传统路径INSERT(每天所做的正常INSERT)和直接路径INSERT(向数据库中加载大量数据时使用的INSERT)生成的redo的差别。对于这个简单例子,我们将使用AUTOTRACE和之前创建的表T以及BIG_TABLE。首先,使用传统路径INSERT加载表。
sys@ORCL>set autotrace traceonly statistics;
sys@ORCL>truncate table t;
Table truncated.
sys@ORCL>insert into t
2 select * from big_table;
72563 rows created.
Statistics
----------------------------------------------------------
290 recursive calls
6308 db block gets
3851 consistent gets
1087 physical reads
8900960 redo size
1129 bytes sent via SQL*Net to client
1285 bytes received via SQL*Net from client
4 SQL*Net roundtrips to/from client
5 sorts (memory)
0 sorts (disk)
72563 rows processed
如上所示,这个INSERT生成了大约的8.9M的redo。
在一个NOARCHIVELOG模式数据库中使用直接路径加载时,可以得到以下结果:
sys@ORCL>truncate table t;
Table truncated.
sys@ORCL>insert /*+ APPEND */ into t
2 select * from big_table;
72563 rows created.
Statistics
----------------------------------------------------------
233 recursive calls
1363 db block gets
1185 consistent gets
177 physical reads
29276 redo size
1114 bytes sent via SQL*Net to client
1299 bytes received via SQL*Net from client
4 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
72563 rows processed
这个INSERT只生成了大约29KB的redo。
本文来源 我爱IT技术网 http://www.52ij.com/jishu/5259.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
