环境: CentOS 5.7 64bit, Oracle 11gR2, Greenplum Database 4.2.1.0, Oracle gateway 11g
场景:greenplum内有个表大概50多万条数据,通过dblink汇总此表需要1分钟的时候(语句:select count(*) from tab1 where "date_id" = 20130108),其中过程推测是----解析sql成gp可以执行的语句,将50万数据传输到Oracle database服务器(通过sar -n dev 1 100可知),再到oracle database汇总数据。这也是造成查询奇慢的原因。
解决方法:Oracle gateway有个包dbms_hs_passthrough,它将语句直接推送到异构数据库内执行,然后把执行的结果通过gateway传输到oracle database展现。
例:
执行只需要2秒而已
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16582684/viewspace-752507/
,如需转载,请注明出处,否则将追究法律责任。