最近项目中碰到一个问题,本地系统中需要请求两个不同DBLink远程访问数据,这样导致访问数据速度很慢,要耗费十几分钟,点开F5查看远程接收速度,慢的跟蜗牛爬一样,这样的访问速度是无法接受的,后来在网上找到了解决办法,试用driving_site调优,速度明显起来了,分享给大家。
业务是远程ehr库的有数据集表A,B,C..等多表,在远程empi库中有一个表数据集定位sjjdw表,其中ehr库表在empi库sjjdw表体现是sjjid字段,同时他们有一个共有字段zxid,目前需要查询的业务是:ehr库数据表中zxid未被empi库sjjdw表对应的未维护的记录,具体体现就是ehr库的数据集表DA_GRJBXX表有zxid有100个,但是对应的empi库sjjdw表字段sjjid='DA_GRJBXX'对应的zxid只有20个,那么其他80是没有被维护起来的记录。
说了这么多,直接上SQL
/* DBlink 未使用driving_site前*/
select 'MB_TNBSFDJ' as tableName ,count(*) as sl from MB_TNBSFDJ@ehr_2 MB_TNBSFDJ where MB_TNBSFDJ.zxid not in (select zxid from mpi_sjjdw@empi_2 dw where dw.sjjid = 'MB_TNBSFDJ')
union
select 'MB_TNBZXDA' as tableName ,count(*) as sl from MB_TNBZXDA@eh