首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在视图中连接表还是从join创建表,然后在顶部查看?

在视图中连接表还是从join创建表,然后在顶部查看?
EN

Stack Overflow用户
提问于 2016-05-09 21:39:44
回答 1查看 320关注 0票数 0

也许我对此使用了错误的搜索词,但我试图理解在Netezza中视图与表的查询性能之间是否存在差异。我有一个库存视图,其中也考虑到货币,这已经增长到近2B记录自成立几年前。视图是通过连接多个表创建的,查询性能随着时间的推移而下降。我想知道是否有助于创建一个新的物理表来完成视图当前正在进行的连接,然后将我的新视图创建为"SELECT * FROM THIS_NEW_TABLE“。那么,这个新视图理论上会比原来的视图执行得更好吗?我知道我可以测试这个来看看结果,但是我想弄明白为什么其中一个会比另一个更好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-09 23:44:22

答案是“是”,至少在大多数情况下是这样。从基表和视图中进行选择具有以下优点:

  • 引擎只需读取结果表的列中的数据。在视图中,可能需要读取其他列。
  • 引擎对结果表有准确的统计信息,可以用于查询的其余部分。
  • 生成的表可以被索引,以进一步加速使用它的查询。

当然,缺点是当新数据插入(或更新或删除)基表时,该表立即过期。如果你能接受这个问题--比如每天一次或者每周一次--那么你应该会看到性能的提高。

一些数据库提供了物化的视图来解决这个问题。唉,Netezza将物化视图限制在一个表上,因此这对您没有特别的帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37125916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档