我们有一个名为" Employee"和视图名为" Employee_View"。该视图仅引用了一个表(" Employee")没有连接等。现在我有一个问题,如果我们在View上执行任何DML操作(插入/更新/删除)对查询执行的性能影响比对表的直接DML操作有影响。
请澄清相同的内容。
答案 0 :(得分:0)
如果您的视图没有实现并且只是表上的select,那么对视图执行DML操作应该具有与基础表相同的性能。将视图列映射到基础表列可能会产生非常非常小的开销。
视图编译一次,因此如果视图具有对更新而言多余的昂贵操作,则这些操作可能仍然会对性能产生影响。例如,如果视图调用用户定义的函数,那么(可能)将调用该函数,无论它是否在更新中使用(我不确定SQL Server是否具有某种执行时间)优化以删除此类引用)。但是,这不是update
特有的。如果您只是从视图中选择了其他列,情况也是如此。