在SQL Server 2008中对View执行DML操作时,性能是否会受到影响

时间:2014-07-18 13:23:36

标签: sql sql-server sql-server-2008

我们有一个名为" Employee"和视图名为" Employee_View"。该视图仅引用了一个表(" Employee")没有连接等。现在我有一个问题,如果我们在View上执行任何DML操作(插入/更新/删除)对查询执行的性能影响比对表的直接DML操作有影响。

请澄清相同的内容。

1 个答案:

答案 0 :(得分:0)

如果您的视图没有实现并且只是表上的select,那么对视图执行DML操作应该具有与基础表相同的性能。将视图列映射到基础表列可能会产生非常非常小的开销。

视图编译一次,因此如果视图具有对更新而言多余的昂贵操作,则这些操作可能仍然会对性能产生影响。例如,如果视图调用用户定义的函数,那么(可能)将调用该函数,无论它是否在更新中使用(我不确定SQL Server是否具有某种执行时间)优化以删除此类引用)。但是,这不是update特有的。如果您只是从视图中选择了其他列,情况也是如此。

相关问题