查询配置数据库 视图 响应时长优化问题
问题 : 主数据库 为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();
效率提升一倍

浙公网安备 33010602011771号