您的位置:首页 > 数据库

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

2013-05-08 23:00 387 查看
     今天抓到一条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,把调用远程数据库的功能剥离出来,把取数据的功能建立在远程数据库中供本地数据库调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: