java—对特定于地区和地区的所有客户进行客户计数

vawmfj5a  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(335)
select 
                "pct_customers_count"=isnull((select  count(customer_code)  from CRM..pct_customers where status <> "R" and add_branch=t3.c_branchcode),0) 
                ,"pct_arch_customers_count"=isnull((select  count(customer_code)  from CRM..pct_customers_arch where status <> "R" and add_branch=t3.c_branchcode) ,0)
                ,"crms_customers_count"= isnull((select  count(customer_code)  from CRMS..crms_customer_master where status <> "R" and add_branch=t3.c_branchcode) ,0)
                ,"crms_customers_daily_count"=isnull((select  count(customer_code)  from CRMS..crms_custdaily_master where status <> "R" and add_branch=t3.c_branchcode),0)
            from 
                ums..admin_regions t1 
                ,ums..admin_branches t2
                ,ums..branch_master t3
            where 
                t1.reg_code ='ZZZZ'
                and t2.reg_grandpa = t1.reg_code
                and t3.c_branchcode = t2.branch_code

下面我给出了我使用的表的总行大小
pct公司_customers:720227
客户数量:341500
crms\U客户_master:999005
客户关系管理系统_master:929022
最后三个表获取分支代码并将其提供给pct\u customers\u表、pct\u customers\u arch、crms\u customer\u master和crms\u custdaily\u master fot以计算客户数。

问题

这个查询在我们的数据库服务器上占用了很大的负载。如何优化这个查询,使搜索数据库所需的时间不到一分钟。我试图通过联接简化查询,但没有成功。

我找到的解决方案

我知道这是一个很好的解决方案,但感觉这不是一个直接的解决方案。所以如果你们知道我的问题的任何其他解决方案,请分享。

hivapdat

hivapdat1#

您需要为每个表创建一个索引;要索引的列是status和add\u分支。

相关问题