首页 > Linux操作系统 > Linux操作系统 > 使用expdp导出分区表时性能差
由于需要,在生产系统上(Oracle RAC 10.2.0.2)使用expdp导出分区表数据,发现导出速度很慢,基本上1分钟才导出几十MB,查看了当时的等待事件,为“wait for unread message on broadcast channel”。
查了下原因,可能与“BUG 6236862 POOR PLAN FOR SQL WITH ROWNUM (OR FIRST_K_ROWS) WITH PARTITION EXTENDED NAMING”有关。主要是由于在导出分区表数据时,数据泵选择了效率较差的索引和执行计划(A poor plan may be used for SQL with ROWNUM (or FIRST_K_ROWS) with partition extended naming.)
eg: You may see an INDEX FULL SCAN of a non partitioned global index used as an access path in a SQL statement where a partition-extended name syntax was used leading to worse performance compared to table access full.
最彻底的解决方法当然是使用补丁解决该问题,不过当时是直接在生产上实施的,打补丁是不可能的了,最后通过使用较原始的exp/imp方式解决了这个问题。
之所以记录这个问题,主要是想提醒自己,有时候解决问题的方法有很多种,一种方法不可行时,不妨尝试采取其他方法,有时候问题就迎刃而解了。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20750200/viewspace-714725/ ,如需转载,请注明出处,否则将追究法律责任。