|
曾遇到过一个CPU 基本是0%而ETL不能执行的问题,也是够狠的。
大概情况是,ETL人说数据库死掉了,因为一个简单的ETL JOB都没法执行,但实际上其他人都没问题。
那怎莫办,就来个EVENT MONITOR吧。
结果是一开始时那个ETL还有SQL近来,一会功夫后就再也没从INFORMATICA来的SQL了
再看看APPLICATION SNAPSHOT,原来是在LOCK-WAIT啦。
再看看,LOCK-WAIT是在等另一个ETL JOB。
再看看,这两个JOBs是在同时连接到数据库的。。。
有趣了。
大家坐下来谈谈,原来在ETL开始时设定了两个THREADS,来CONCURRENT LOAD数据。
这下好了,在数据库看来,是JOB1在LOCK-WAIT ON JOB2,而在INFORMATICA看来,是JOB2在等JOB1。在各自的层面看来,都没问题,但把两个(DB2+INFORMATICA)放在一起,就是个DEADLOCK了。
在不同公司的DB2数据库上都遇到过同样的这种问题。
在ORACLE,也遇到过类似问题。 |
|