目前我有一個表(A),其中列存儲了來自其他表(B)的一些彙總值。在B表中更改數據時,通過普通UPDATE A ... FROM SELECT B
聲明相應更新此列。扁平表vs手冊更新
Vertica 8.1提供了相關功能:Flattened Tables。通過SET USING
約束,它看起來像是相同的過程:按需(通過調用REFRESH_COLUMNS()
)讀取源表並將結果寫入目標列。
Documentation說,大約平頂桌的太簡單的好處:
平頂表可以包括通過查詢其他表獲取值的列。源表和拼合表的操作是解耦的;一個變化不會自動傳播到另一個。這最大限度地減少了非規範化表格的其他典型開銷。
是的,這個約束看起來比手動更新更清晰。但我只是想明白:在引擎蓋下還是完全不同的方式,它只是「語法糖」而已?它在性能上有什麼優點或缺點?可能有人已經在使用它並可以分享自己的體驗。
感謝您的解釋! – Timurib