也许我正在使用错误的搜索术语,但我试图了解Netezza中的视图与表查询性能之间是否存在差异。我有一个清单视图,它也考虑了货币,自几年前成立以来已经增长到近2B记录。通过连接多个表来创建视图,并且查询性能随着时间的推移而降低。我想知道是否有助于创建一个新的物理表来执行视图当前正在进行的连接,然后创建我的新视图基本上是“SELECT * FROM [THIS_NEW_TABLE]”。那么这个新视图在理论上是否会比原始视图更好,其中连接在视图中?我知道我可以测试这个以查看结果,但我试图理解为什么一个会比另一个好。
答案 0 :(得分:0)
答案是肯定的,至少在大多数情况下是这样。从基表到视图的选择具有以下优点:
当然,缺点是当新数据插入(或更新或删除)基表时,表会立即过时。如果您能解决这个问题 - 例如每天重新创建一次表或每周重复一次 - 那么您应该会看到性能提升。
某些数据库提供物化视图来克服此问题。唉,Netezza将物化视图限制在一个表中,因此对您没有特别的帮助。