2013-05-02 SQL语句远程调用(remote)引发的性能问题

     今天抓到一条SQL语句执行了近6个小时。
     分析了下执行计划,问题出在远程调用主数据上,由于执行计划是在本地生成,无法获取远程表的统计信息,所以无法生成准确的执行计划,执行计划中用的是nested loops相当于是两个for循环,在这么大的数据量的情况下很不适用(见附录)。还有一个原因是数据库把远程表的数据取过来也很耗时。
     数据规模:
     select count(1) from  GG_INSTALL_TRANSFORMER;--106462
     select count(1) from  GG_INSTALL_POINT;--4300278
     select count(1) from  GG_CONTRACT;--3349652
     select count(1) from  GG_USER;--3360398
     执行计划:
    解决方案:1. 把主数据的几张表同步到本地数据库中。
                   2. 分成多个SQL,把调用远程数据库的功能剥离出来,把取数据的功能建立在远程数据库中供本地数据库调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值