SQL语句优化问题

select ta.mdmc,ta.louceng,ta.spid,ta.spmc,tb.xsze from

(select * from zg_sysinfo where mdmc='江北店'  and louceng in (select distinct louceng from jhyb_user where mdmc='江北店'  and name = 'ysbin'  )  )ta

 join

(select mdmc,loudong,louceng,quyu,spid,spmc,sum(xsze)xsze from view_xshb

where rq>='2023-01-25'

and rq<='2023-02-08'

group by mdmc,loudong,louceng,quyu,spid,spmc

 ) tb

on ta.mdmc=tb.mdmc  and ta.louceng=tb.louceng and ta.spid=tb.spid

/*  描述:从zg_sysinfo这张基础上筛选出门店和当前户名所在的楼层商铺信息,再关联销售合并的视图view_xshb

    

    select * from zg_sysinfo  1767条记录

    select * from jhyb_user    907条记录

    select * from view_xshb   视图19万记录   1.25-2.8日时间段内867条记录    */

    看语句很简单,但执行很慢,需要70秒,这是什么原因?需要怎么优化,感谢!

FineReport ysbin 发布于 2023-2-9 15:02
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-2-9 15:04(编辑于 2023-2-9 15:06)

view_xshb视图里面没有索引吧。你一关联后。视图还要去查询,而且视图是实时的。它里面又有取数的逻辑

找到view_xshb视图把里面的取数逻辑单独拿出来执行,你就知道这个视图执行的时间了。。

  • ysbin ysbin(提问者) 我单独执行视图的语句,不加WHERE 2秒。视图索引是没有加
    2023-02-09 15:13 
  • CD20160914 CD20160914 回复 ysbin(提问者) 把语句单独每一个都去执行看一下。。就是你上面的语句,子查询里面,分别执行
    2023-02-09 15:17 
  • ysbin ysbin(提问者) 回复 CD20160914 单独查都是秒出结果的
    2023-02-09 15:28 
  • CD20160914 CD20160914 回复 ysbin(提问者) 先一部分的加上去,看是加到哪一部分组合后就慢了。自己先测试
    2023-02-09 15:29 
  • ysbin ysbin(提问者) 回复 CD20160914 就是 ta join tb表的时候,就慢了
    2023-02-09 17:06 
  • 2关注人数
  • 187浏览人数
  • 最后回答于:2023-2-9 15:06
    请选择关闭问题的原因
    确定 取消
    返回顶部