问题 : 主数据库 为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();
效率提升一倍
标签:数据库,视图,查询,params,iMpckService,CompletableFuture From: https://www.cnblogs.com/lilulin/p/17479256.html