别名表在SQL中的性能影响

问题描述 投票:0回答:1

我正在使用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 ....

sql apache-spark-sql sqlperformance
1个回答
0
投票
在查询中使用视图等效于构建两个子查询,例如:
© www.soinside.com 2019 - 2024. All rights reserved.