限制 Snowflake CTE 中的列数是否会提高 VIEW 的性能
Does limiting the number of columns in Snowflake CTE improve the performance of a VIEW
我有一个雪花 VIEW
定义如下:
create order_amount_by_order_type_view as (
with temp_table as (
select * FROM orders inner join order_lines on orders.order_no=order_lines.order_no)
select order_type, sum(amount)
from temp_table
group by orders.order_type
)
请注意,我选择了 CTE 中的所有字段,即使主查询中不需要它们。
问题:Snowflake 是否足够聪明,可以识别出主要使用 order_type
和 amount
并相应地优化 CTE?
或者我应该手动限制 CTE 中的必填字段?
create order_amount_by_order_type_view as (
with temp_table as (
select orders.order_type, order_lines.amount FROM orders inner join order_lines on orders.order_no=order_lines.order_no)
select order_type, sum(amount)
from temp_table
group by orders.order_type
)
应该足够聪明,测试将是:
select * from table_name
看看读取了多少字节,然后
select col1,col2 from table_name
并查看读取了多少字节。
然后查看查询中 CTE 的 table 读数,看看它是否较小。
我有一个雪花 VIEW
定义如下:
create order_amount_by_order_type_view as (
with temp_table as (
select * FROM orders inner join order_lines on orders.order_no=order_lines.order_no)
select order_type, sum(amount)
from temp_table
group by orders.order_type
)
请注意,我选择了 CTE 中的所有字段,即使主查询中不需要它们。
问题:Snowflake 是否足够聪明,可以识别出主要使用 order_type
和 amount
并相应地优化 CTE?
或者我应该手动限制 CTE 中的必填字段?
create order_amount_by_order_type_view as (
with temp_table as (
select orders.order_type, order_lines.amount FROM orders inner join order_lines on orders.order_no=order_lines.order_no)
select order_type, sum(amount)
from temp_table
group by orders.order_type
)
应该足够聪明,测试将是:
select * from table_name
看看读取了多少字节,然后
select col1,col2 from table_name
并查看读取了多少字节。
然后查看查询中 CTE 的 table 读数,看看它是否较小。