从7月3日开始某一系统总是产生大量等待事件SQL*Net message from dblink,以前都没有的。网上说是空闲等待事件,可以不用管。但是对于这个空闲等待这么大,我想必定是某一个功能出问题了。
通过对业务的了解,确定是两个数据库(物理位置也隔很远)通过db link传送大量数据导致,一次有几万条,每个小时都会有大量SQL*Net message from dblink是有问题,每个小时同步的数据都是一样,通知开发人员改正这个缺陷后,观察了几天,没有发现这个问题。
总结:空闲等待时间如果小是可以不用管,如果太大,说明等待某个资源形成了等待,绝对不能忽视。好比高速公路大堵车,堵车的司机很闲,但是收费站的人很忙。
当时一个时段的AWR:
Snap Id | Snap Time | Sessions | Cursors/Session | |
---|---|---|---|---|
Begin Snap: | 33218 | 09-7月 -13 02:00:51 | 105 | 14.0 |
End Snap: | 33219 | 09-7月 -13 03:00:04 | 105 | 14.1 |
Elapsed: | 59.21 (mins) | |||
DB Time: | 44.08 (mins) |
Event | Waits | Time(s) | Avg Wait(ms) | % Total Call Time | Wait Class |
---|---|---|---|---|---|
SQL*Net message from dblink | 341,095 | 1,774 | 5 | 67.1 | Network |
CPU time | 750 | 28.4 | |||
SQL*Net more data from dblink | 168,436 | 89 | 1 | 3.4 | Network |
db file sequential read | 220,486 | 34 | 0 | 1.3 | User I/O |
db file scattered read | 15,730 | 21 | 1 | .8 | User I/O |