我正在使用Spark-SQL。我想知道在同一sql查询中通过多次[
select
a.custid, b.descr as prodname, c.descr as storename
from cust a
left join prod b
on a.custid = b.custid
left join prod c
on a.custregion = c.regionid;
在上面的示例中,在具有别名的同一查询中,product表被多次使用。因此,由于在同一个sql中多次使用同一张表,因此无论如何都会影响查询的性能?
另一种方法是每次用表构造单个sql,然后将所有sql组合在一起(如下所示:]
--alias prod to get prodname
create temporary view v_prod as
select a.custid, b.descr as prodname
from cust a
left join prod b
on a.custid = b.custid;
--alias prod to get storename
create temporary view v_store as
select a.custid, c.descr as storename
from cust a
left join prod c
on a.custregion = c.regionid;
--combine both sqls
select
a.custid, b.prodname, c.storename
from cust a
left join v_prod b
on a.custid = b.custid
left join v_store c
on a.custid = c.custid;
任何人都可以从性能角度让我知道哪个更好吗?
谢谢
我正在使用Spark-SQL。我想知道在同一个sql查询中多次对表进行别名是否会对性能产生影响?我有一个查询:选择a.custid,b.descr作为产品名称,c ....