【问题标题】:Does Performance impacted while Performing DML operation on View in SQL server 2008在 SQL Server 2008 中对视图执行 DML 操作时性能是否受到影响
【发布时间】:2014-07-18 21:47:06
【问题描述】:

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

请澄清一下。

【问题讨论】:

  • 您是在问插入视图与直接插入表相比是否有任何性能差异?听起来很容易测试,试一试。

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    • 2015-08-10
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多