目前我有一个表(A),其中列存储了来自其他表(B)的一些汇总值。在B表中更改数据时,通过普通UPDATE A ... FROM SELECT B
声明相应更新此列。扁平表vs手册更新
Vertica 8.1提供了相关功能:Flattened Tables。通过SET USING
约束,它看起来像是相同的过程:按需(通过调用REFRESH_COLUMNS()
)读取源表并将结果写入目标列。
Documentation说,大约平顶桌的太简单的好处:
平顶表可以包括通过查询其他表获取值的列。源表和拼合表的操作是解耦的;一个变化不会自动传播到另一个。这最大限度地减少了非规范化表格的其他典型开销。
是的,这个约束看起来比手动更新更清晰。但我只是想明白:在引擎盖下还是完全不同的方式,它只是“语法糖”而已?它在性能上有什么优点或缺点?可能有人已经在使用它并可以分享自己的体验。
感谢您的解释! – Timurib