【发布时间】:2011-08-20 07:36:22
【问题描述】:
是否有关于是否使用嵌套视图的一般最佳做法?使用嵌套视图时是否会影响性能?是否有最佳实践表明在您深入 4 层或更多层之前确实不会影响性能?
我问这个的原因是因为我正在为是否使用它们而苦苦挣扎。获得报告请求的情况并不罕见,我可以访问该信息的唯一方法是将 20 个或更多表连接在一起。并非所有表都返回字段,但需要选择正确的数据。在这种情况下,我喜欢嵌套视图并为其他报告重用较低级别的视图,因为如果需要更改逻辑,我只需更新一个视图并更新所有报告。我使用的许多表都包含数百万条记录。
但是,这可能不是一个好习惯。您介意分享您对此的看法吗?
【问题讨论】:
-
视图做聚合吗?您是否将同一个基表连接到自身?查看执行计划,看看您是否获得了次优计划。
-
你能提供一个“嵌套视图”的例子吗?我只熟悉以下术语:内联视图(AKA 派生表)、非物化视图和物化视图(SQL Server 中的 AKA 索引视图)。
-
@OMG - 我认为它是指引用其他视图的视图引用其他视图...
-
@Martin:分层视图?这很糟糕...... /me 对 Martin 挥手,我想是 OP
-
是的,这就是我的意思...引用其他视图的视图。现在我正在审查执行计划,我将退出嵌套视图,并查看哪些索引视图可能有助于仅深入一层。
标签: sql sql-server sql-server-2008 view