在我的应用程序的某些区域,我需要来自数据库中几个表的数据(我有一个应用程序,应用程序有许多属性,每个属性有几个定义,每个定义都有一个值)。我需要来自所有这些表的数据用于应用程序。我应该使用视图(一个相当大的视图)或子查询来选择记录吗?在子查询的情况下,优化器能够高效工作吗?如果缓存适用于子查询,我也很感兴趣。
答案 0 :(得分:2)
通常会将视图扩展到子查询中,除非您通过在其上删除聚簇索引将视图显式标记为持久化。
答案 1 :(得分:1)
这是一个'依赖'的问题。视图可能有助于使代码更易于维护,但复杂的选择谓词可能会使优化器混淆。
另一个选项是返回记录集的存储过程。如果多次重复使用子查询,则可能会从分割查询,选择子查询到临时表以及在稍后的步骤中组合这些部分中获得一些里程。
如果没有更具体的问题描述,很难真正给出有意义的答案。