表关联SQL优化

clickhouse 数据库 两张表关联运行超过30s,怎么优化

select data_date,base_name2,customer_name,product_name,product_type,item_code,item_name,sap_working_qty,pass_qty,pitem_cost_qty,made_qty

from zh_ads.ads_mfg_working_inv_detail org

,zh_ods.ods_dj_portal_user_data_permission p

where 1=1 and p.username = '${fine_username}'

and p.del_flag='0'

and p.permission_type<'4'

and region_name = '制造域'

and if(p.base_flag is NULL,1=1,p.base_flag = org.base_code )

${if(len(数据日期)=0,""," and data_date= '"+ 数据日期 +"'")}

${if(len(基地名称)==0,"","and base_name2 in ('" + 基地名称 +"')")}

${if(len(客户)==0,"","and customer_name in ('" + 客户 +"')")}

${if(len(成品物料描述)==0,"","and product_name in ('" + 成品物料描述 +"')")}

${if(len(成品类型)==0,"","and product_type in ('" + 成品类型 +"')")}

${if(len(物料)==0,"","and item_code in ('" + 物料 +"')")}

order by base_name2,customer_name,product_name,product_type,item_code,item_name,data_date DESC

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

image.png

这个写法没有见过。而且如果是这样的话,两个表都没有关联条件了,产生了笛卡尔积了   1000*1000会返回类似这么多数据后再过滤。。就是根据表的行相乘了!!

假如p表有35000行,org表有4500行,就会返回35000*4500行的数据

  • 2关注人数
  • 275浏览人数
  • 最后回答于:2023-6-19 15:07
    请选择关闭问题的原因
    确定 取消
    返回顶部