创建一个由几个表组成的视图

Posted

技术标签:

【中文标题】创建一个由几个表组成的视图【英文标题】:Creating a View that is a UNION of a few tables 【发布时间】:2019-12-04 21:30:12 【问题描述】:

我的一个客户想要创建一个包含几个表的UNION 视图。

来自客户:

这些表由流式数据源填充,非常漂亮 已经相当大了。由于如何应用集合操作,任何 此视图的查询导致性能问题,因为任何 在UNIONs 之后应用过滤器/谓词。我知道你 无法使用 UNION 操作实现视图,所以我想知道 如果雪花推荐任何其他解决方案,而不是构建一个 合并组成表的单独表。

【问题讨论】:

答案可能很大程度上取决于您的数据细节。一般来说:我建议查看查询配置文件,看看您是否可以找到允许查询进行更多修剪的方法。 docs.snowflake.net/manuals/user-guide/ui-query-profile.html 【参考方案1】:

在 UNION 之前,我创建了如下视图,并且修剪按预期工作。

我想知道他们的问题是否是由于UNION(具有重复数据删除的性能损失)与UNION ALL 的对比

create or replace view test_unions
(
  mycol1,
  mycol2,
  mycol3
) as (
  (select mycol1,mycol2,mycol3 from tableA)
  union all (select  mycol1,mycol2,mycol3 from tableB)
  union all (select  mycol1,mycol2,mycol3 from tableC)
)
;

【讨论】:

以上是关于创建一个由几个表组成的视图的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 EF Code-First 插入/更新可更新视图

根据子视图大小调整 XIB 中的 UIView 大小

在 SwiftUI 中将绑定传递给导航堆栈中每个视图的最佳方法是啥

什么是Unicode码?它由几个字节组成

在键盘处于活动状态时呈现模态视图控制器

在 asp.net mvc 4 中使用带有部分视图的 jQuery