ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle gateway的下推操作--dbms_hs_passthrough

Oracle gateway的下推操作--dbms_hs_passthrough

原创 Linux操作系统 作者:std1984 时间:2013-01-11 11:36:31 0 删除 编辑
环境: 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展现。
 
例:
declare 
  c int;
  nr int;
  res int;
begin
  c := dbms_hs_passthrough.open_cursor@gp3;
  dbms_hs_passthrough.parse@gp(c, 'select count(*) from tab1 where date_id = 20130108');
  nr := dbms_hs_passthrough.fetch_row@gp(c);
  dbms_hs_passthrough.get_value@gp(c, 1, res);
  dbms_hs_passthrough.close_cursor@gp(c);
  dbms_output.put_line(res);
end;
执行只需要2秒而已

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16582684/viewspace-752507/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Solr删除所有索引
请登录后发表评论 登录
全部评论

注册时间:2008-12-29

  • 博文量
    171
  • 访问量
    1401347