"[图片] 如图所示,这个取数据 37 秒,这个数据库实体表,不是视图什么的,表里就 1000 条左右的数据量,数据库里查询 select* from A 只要几毫秒的时间,润乾数据集的里语法 .."
如图所示,这个取数据 37 秒,这个数据库实体表,不是视图什么的,表里就 1000 条左右的数据量,数据库里查询 select* from A 只要几毫秒的时间,润乾数据集的里语法 sql 是 select * from A where A.TIME >=? adn A.TIME <=?…….. 不知道哪里有问题,页面上看这个报表要将近 1 分钟,请帮忙看看哪里有问题
这块取数就是通过 jdbc 取数,润乾这块也没啥特别设置,可以检查几个地方:一:jdbc 驱动和数据库版本是否对应,默认驱动放在了设计器安装目录的 common jdbc 目录下,可以替换成对应版本的试下二:数据库是本机还是远程?远程的话看下网络间是否有些延迟导致取数慢三:数据库总共 1000 条的话,可以试下,把参数去掉,直接写个 select * 不加条件,看下这个速度是多少,以前遇到过加参数执行慢的,不过这个概率极小,或者可以将 sql 改成 select * from xx where time>‘2021-12-12’ 将条件值先写死看下速度如何。
把参数去掉就挺快的,加上就慢了,这怎么解决呢
保证网络不拥挤、数据库所在机器没有其它并发任务的前提下,如果一直这样,那只能建议重装数据库另外还是建议检查下 jdbc 版本与数据库版本是否对应
吧? 这种参数引用方式改为 ${参数名} 方式 也就是用 ${} 方式直接引用参数拼好 sql${参数} 下 sql 的性能和直接写死 sql 条件的效率差不多
换成这样 WHERE time >= ${A} AND time <= ${B} 提示有语法错误
得保证拼好的 sql 是符合 sql 语法的,左侧一般有 sql 语句输出,可以看下比如需要加引号的,要提前加好
这块取数就是通过 jdbc 取数,润乾这块也没啥特别设置,可以检查几个地方:
一:jdbc 驱动和数据库版本是否对应,默认驱动放在了设计器安装目录的 common jdbc 目录下,可以替换成对应版本的试下
二:数据库是本机还是远程?远程的话看下网络间是否有些延迟导致取数慢
三:数据库总共 1000 条的话,可以试下,把参数去掉,直接写个 select * 不加条件,看下这个速度是多少,以前遇到过加参数执行慢的,不过这个概率极小,或者可以将 sql 改成 select * from xx where time>‘2021-12-12’ 将条件值先写死看下速度如何。
把参数去掉就挺快的,加上就慢了,这怎么解决呢
保证网络不拥挤、数据库所在机器没有其它并发任务的前提下,如果一直这样,那只能建议重装数据库
另外还是建议检查下 jdbc 版本与数据库版本是否对应
吧? 这种参数引用方式改为 ${参数名} 方式 也就是用 ${} 方式直接引用参数拼好 sql
${参数} 下 sql 的性能和直接写死 sql 条件的效率差不多
换成这样 WHERE time >= ${A} AND time <= ${B} 提示有语法错误
得保证拼好的 sql 是符合 sql 语法的,左侧一般有 sql 语句输出,可以看下
比如需要加引号的,要提前加好