1

在我的应用程序的某些区域中,我需要来自数据库中多个表的数据(我有一个应用程序,该应用程序有很多属性,每个属性都有几个定义,每个定义都有一个值)。我需要所有这些表中的数据用于应用程序。我应该使用视图(相当大的视图)还是子查询来选择记录?在子查询的情况下,优化器是否能够有效地工作?我也对缓存是否适用于子查询感兴趣。

4

2 回答 2

2

视图通常会扩展为子查询,除非您通过在视图上删除聚集索引来明确地将视图标记为持久化。

于 2008-10-08T09:54:00.730 回答
1

这是一个“视情况而定”的问题。视图可能有助于使代码更易于维护,但复杂的选择谓词可能会使优化器感到困惑。

另一种选择是返回记录集的存储过程。如果您多次重复使用子查询,您可能会从拆分查询、将子查询选择到临时表中并在稍后的步骤中组合各个部分中获得一些好处。

如果没有对问题更具体的描述,很难真正给出有意义的答案。

于 2008-10-08T09:52:46.163 回答