ITPub博客

首页 > 数据库 > > 实际调优案例-案例:改写SQL消除子查询(案例1)

实际调优案例-案例:改写SQL消除子查询(案例1)

作者:GaussDB_数据库 时间:2020-01-15 11:17:14 0 删除 编辑

现象描述

select 
1,
(select count(*) from customer_address_001 a4 where a4.ca_address_sk = a.ca_address_sk) as GZCS
from customer_address_001 a;

此SQL性能较差,查看发现执行计划中存在SubPlan,具体如下:

优化说明

此优化的核心就是消除子查询。分析业务场景发现a.ca_address_sk不为null,那么从SQL语义出发,可以等价改写SQL为:

select 
count(*)
from customer_address_001 a4, customer_address_001 a
where a4.ca_address_sk = a.ca_address_sk
group by a.ca_address_sk;
 说明:

为了保证改写的等效性,在customer_address_001. ca_address_sk加了not null约束。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3170455/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19240