帆软中数据集:select xxx from a,b,c,d,e where xx特别慢,查不出来。

数据集:select xxx from a,b,c,d,e where xxx    ---查询不出来。

sql:select xxx from a,b,c,d,e where xxx  --查询速度快

图片.png

贪吃鱼的猫 发布于 2020-1-20 16:17 (编辑于 2020-1-20 16:27)
1min目标场景问卷 立即参与
回答问题
悬赏:8 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
codeclyLv4初级互助
发布于2020-1-20 16:34(编辑于 2020-1-20 16:40)

数据集的预览有没有报错?日志上有没有什么有用的信息?

从错误提示上看可能是数据库连接的配置有问题,

在【定义数据库连接】 -> 点击对应的数据库连接 -> 然后点【测试连接】,看是否连接成功


另外:这个查询的表关联太多了点,如果数据量大会导致查询时间长或者查询不出来,可以考虑在关键字段和where条件加索引

  • 贪吃鱼的猫 贪吃鱼的猫(提问者) 数据库连接是正确的。表是关联挺多的,不明白的是oracle客户端执行很快,帆软数据集中执行就是超时,一样sql语句,很是不明白。
    2020-01-20 16:42 
  • codecly codecly 回复 贪吃鱼的猫(提问者) 可以先在客户端执行 sql 查看个数:select count(1) from (select xxx from a,b,c,d,e where xx) a 使用客户端快可能是以下两个原因: 1. 有些客户端可能自带了分页功能,所以显示的结果会很快;可以在数据集中使用分页查询sql ,看是否依然很慢。 2. 客户端对sql有缓存,之前已经查询过了。这种情况可以把客户端关了,然后再第一次查询试下,是否会慢。 3. 最后可以在客户端使用 explain select xxx from a,b,c,d,e where xx 看下sql 的执行计划,分析出具体是哪个地方耗时长,具体的内容可以网上搜下,先主要关注 rows,cost
    2020-01-20 17:12 
最佳回答
0
shirokoLv6资深互助
发布于2020-1-20 16:20

预览有报错信息吗

  • 贪吃鱼的猫 贪吃鱼的猫(提问者) 我按照提示修改了执行时间;180s。也是这样呢。同样的查询条件在oracle几秒就出结果
    2020-01-20 16:28 
最佳回答
0
zsh331Lv8专家互助
发布于2020-1-20 17:57
最佳回答
0
KerydiaLv5中级互助
发布于2020-1-20 20:59

你在PL SQL相当于是查询前50行这样子 当然很快啦

然后数据集默认是查询全部并加载到内存的

你可以考虑分页或者优化SQL  你这个SQL很明显是有很大问题的,尽量过滤掉无用的数据

若无法过滤,可以考虑使用物化视图

  • 5关注人数
  • 829浏览人数
  • 最后回答于:2020-1-20 20:59
    请选择关闭问题的原因
    确定 取消
    返回顶部