sql执行时间问题

1.红框内对时间列进行一次筛选,可以看到运行时间0.1s

image.png

2.如果对时间列进行两次筛选运行时间变成了2.8s。。。

image.png

3.使用between and  3.2s

image.png

FineReport ZxxT 发布于 2023-7-27 10:12 (编辑于 2023-7-27 10:16)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
runnerLv7资深互助
发布于2023-7-27 10:14

image.png

你把处理字段的改成处理参数,这样会跑全表

  • ZxxT ZxxT(提问者) 大佬,改成处理参数怎么弄,有示例吗
    2023-07-27 10:17 
  • runner runner 回复 ZxxT(提问者) 你原本的时间格式是啥样的?
    2023-07-27 10:20 
  • ZxxT ZxxT(提问者) 回复 runner 02/01/2023这样
    2023-07-27 10:22 
  • runner runner 回复 ZxxT(提问者) ${format(CONCATENATE(left(参数名,4),\"-\",mid(参数名,5,2),\"-\",right(参数名,2)) ,\"MM/dd/YYYY\")} 试一下过滤有效没
    2023-07-27 10:30 
最佳回答
0
1592Lv6高级互助
发布于2023-7-27 10:14

改成between and 试试

  • ZxxT ZxxT(提问者) 试了,时间更久了
    2023-07-27 10:17 
  • 1592 1592 回复 ZxxT(提问者) 那不处理字段,给值处理成02/01/2023看看
    2023-07-27 10:25 
最佳回答
0
snrtuemcLv8专家互助
发布于2023-7-27 10:14

and增加需要增加一次过滤

试试改成between  and

最佳回答
0
CD20160914Lv8专家互助
发布于2023-7-27 10:31

使用plsql查看一下fl_date这个字段是什么数据类型,是文本格式还是日期类型的?

  • ZxxT ZxxT(提问者) 是文本类型的
    2023-07-27 11:35 
  • CD20160914 CD20160914 回复 ZxxT(提问者) 数据量有多大,这个表,你不要转格式。直接让它大于>=\'2022/01/01\' <=\'2023/01/01\'这样看
    2023-07-27 11:47 
最佳回答
0
为什么白Lv5见习互助
发布于2023-7-27 10:55

尽量不要对大数据量表的原字段进行处理操作,一般对比较的对象进行处理。比如你这里可以后边的日期20220101转换为日期进行比较。

  • 5关注人数
  • 276浏览人数
  • 最后回答于:2023-7-27 10:55
    请选择关闭问题的原因
    确定 取消
    返回顶部