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

来源:互联网 发布:张佳乐军装淘宝 编辑:程序博客网 时间:2024/06/16 16:36
     今天抓到一条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,把调用远程数据库的功能剥离出来,把取数据的功能建立在远程数据库中供本地数据库调用。
原创粉丝点击