在sql中调用View中的视图是不好的

mad*_*3sm 13 sql sql-server

我创建了8个不同的视图,我在视图中使用所有这些视图.所以在我进一步研究这个想法之前,我很想知道.我想知道它对性能的影响是否太大.

Lar*_*tig 18

不,还好.在许多情况下,我个人认为写一个具有巨大且难以理解的定义的视图更为可取.在我看来,使用多个视图可以让您:

  1. 在单个视图中封装离散逻辑.
  2. 在不必重复逻辑的情况下重用各个视图中的逻辑(以后消除更新问题).
  3. 为您的逻辑命名,以便下一个程序员更容易理解您要完成的任务.


Seb*_*ine 7

在创建执行计划期间,视图会被"编译"掉.因此,使用它们只会受到很小的惩罚:SQL Server查找定义需要额外的时间.通常这种延迟是不可测量的.

这意味着为Larry Lustig提到的目的使用视图是非常好的和鼓励的.

但是:确保使用此技术不引入不必要的JOIN.虽然SQL Server具有从查询中消除不需要的表的机制,但如果查询变得复杂,它会很快放弃.执行这些额外的JOIN可能会导致显着的减速.这就是许多公司实施无视规则的原因.

所以:使用视图,但请确保不要滥用它们.