Oracle dblink 导致查询性能问题优化


               前几天帮开发优化的一段sql,逻辑很简单,通过dblink 访问远程数据库表和本地库表做串接,优化之前执行sql 卡死出不来结果,如下:

        

       查看执行计划如下:

 

        

      看起来是驱动表选择错误,远程数据库数据通过网络拉到了本地库处理了,由于远程数据库服务器是exadata一体机,查询处理在远程数据库会比较快,故添加hint driving_site 指定驱动表为远程数据库上的,优化后秒出结果:

   通过查看优化后的sql 执行计划,可以看出用到了exadata storage smart scan 特性,大大提升了速度: