首页 > 数据库 > Oracle > 大量redo生成的问题原因及改进

Top 5 Timed Foreground Events
| Event | Waits | Time(s) | Avg wait (ms) | % DB time | Wait Class |
|---|---|---|---|---|---|
| DB CPU | 2,184 | 68.89 | |||
| db file parallel read | 6,096 | 413 | 68 | 13.02 | User I/O |
| log file sync | 65,199 | 363 | 6 | 11.47 | Commit |
| db file sequential read | 46,038 | 172 | 4 | 5.43 | User I/O |
| direct path read | 415,685 | 46 | 0 | 1.47 | User I/O |
| Elapsed Time (s) | Executions | Elapsed Time per Exec (s) | %Total | %CPU | %IO | SQL Id | SQL Module | SQL Text |
|---|---|---|---|---|---|---|---|---|
| 931.73 | 14,409 | 0.06 | 29.39 | 99.77 | 0.00 | c95g9rc1hw48j | JDBC Thin Client | update sync_id set ma... |
| Executions | Rows Processed | Rows per Exec | Elapsed Time (s) | %CPU | %IO | SQL Id | SQL Module | SQL Text |
|---|---|---|---|---|---|---|---|---|
| 14,684 | 14,684 | 1.00 | 3.39 | 94.7 | .7 | 98kzt71wqz5qg | JDBC Thin Client | update sus_log set failed_c... |
| 14,409 | 78,329,332 | 5,436.14 | 931.73 | 99.8 | 0 | c95g9rc1hw48j | JDBC Thin Client | update sync_id set ma... |
function test_update
{
sqlplus test/test <
commit;
EOF
}
for i in {1..1000000}
do
test_update
done
在测试开始的时候
Redo Switch times per hour 2015-Sep-05 16:02:55
MON DA 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
--- -- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
09 05 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0
运行了不到3分钟,日志切换就达到了14次,还是很能够说明问题的。
Redo Switch times per hour 2015-Sep-05 16:05:20
MON DA 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
--- -- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
09 05 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 2 14 0 0 0 0 0 0 0
然后我们使用update的方式来验证一下。
Redo Switch times per hour 2015-Sep-05 16:08:04
MON DA 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
--- -- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
09 05 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 2 14 0 0 0 0 0 0 0
又过了4分钟,日志一次都没有切换,这就足以说明了我们的推论是正确的。
Redo Switch times per hour 2015-Sep-05 16:12:47
MON DA 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
--- -- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
09 05 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 2 14 0 0 0 0 0 0 0
剩下的就是做进一步的确认和在正式环境部署了。
当然在清楚了冗余数据之后,创建索引的优势就没有那么大了。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23718752/viewspace-1791767/ ,如需转载,请注明出处,否则将追究法律责任。