查询配置数据库 视图 响应时长优化问题
问题 : 主数据库 为oracle , 配置数据库 SqlServer , 有个子页面查询SqlServer数据库视图 , 需要二十多秒才给响应
处理方案 : 把查询分页数据的SQL 和 查询分页计数的SQL 异步处理
原代码:
page=iMpckService.getsympzkcSqlserver(params);//查询SQLserver 数据库 total=iMpckService.getsympzkcSqlserverCount(params);
优化后代码:
CompletableFuture<Void> firstTask = CompletableFuture.runAsync(() -> { // Some code to load previous view data page[0] =iMpckService.getsympzkcSqlserver(params);//查询SQLserver 数据库 }); CompletableFuture<Void> secondTask = CompletableFuture.runAsync(() -> { // Some code to switch database total[0] =iMpckService.getsympzkcSqlserverCount(params); }); CompletableFuture<Void> combinedTask = firstTask.thenComposeAsync(result -> secondTask); combinedTask.join();
效率提升一倍