代码之家  ›  专栏  ›  技术社区  ›  Vikas

SQL视图的缺点是什么?

  •  6
  • Vikas  · 技术社区  · 15 年前

    最近我面对一次面试,我被问到了上面的问题。

    所有人都说观点有很多 缺点,为什么?

    根据所有专家的回答,我想我可以总结一下:

    1. 并不是所有时候我们都可以执行DML语句,因为通常视图是针对复杂查询创建的,并且依赖于多个表。因此,在执行DML语句时,有更多可能违反数据库约束。
    2. 由于视图通常用于复杂的静态查询,所以并不是所有时候都可以在相同的情况下使用该静态查询。例如; 如果您在视图上查询,那么看起来您节省了时间,但是如果您从视图中查找的信息很少,那么您可能会面临预处理面降级问题。
    7 回复  |  直到 15 年前
        1
  •  4
  •   Geeth    15 年前
    1. 当表不存在时,视图将不起作用。

    2. 如果有多个表,则不可能使用dml。

    3. 它也是数据库对象,因此它将占用空间。

    4. 当表被删除时,视图变为非活动的。。它取决于表对象。

    5. 从视图查询比直接从表查询要花更多的时间

        2
  •  4
  •   MLT    15 年前

    我想说的大部分事情都已经涵盖了,不过我还是要补充一下。

    视图在许多情况下都是有用的,但是过多地使用它们可能是一个错误,因为它们在查询结构方面束缚了您的手脚。通常,当您的整个查询包含多个视图时(尤其是当视图是分层的时),或者当一个视图被调整为与最初目的稍有不同的用途时,如果您只是扩展视图并更改逻辑,您会发现有一种更好的编写查询的方法。

        3
  •  2
  •   onedaywhen    15 年前

    Chris Mullins defines 三个基本视图实现规则:

    • 视图使用规则
    • 视图同步规则

    如果你没有正确处理这些问题,你就会遇到代码维护问题、性能问题、安全问题等等。

        4
  •  1
  •   James Black    15 年前

    我能想到的唯一缺点是,您可能会强制用户加入多个视图,以便以对他们有用的方式获取数据,因为现在基本上都是静态查询。

    因此,如果视图是一次创建的,并且预期它永远不会更改,那么最终可能会出现大量视图,这些视图为用户创建了一个导航迷宫,因此应该有一些过程来更新视图,以便在需要更改时保持它们的有用性。

        5
  •  1
  •   sanjeev    8 年前

    1) 删除表时,视图将受到影响。

        6
  •  1
  •   mech user3223097    8 年前
    1. 如果您编写一些复杂的视图,而从视图中查询简单的数据,则需要更多的时间。

    2. 操作。

    3. 表依赖性-如果更改表,则需要 也更新了视图。

        7
  •  0
  •   PP.    15 年前

    视图允许DBA(数据库管理员)严格控制数据库的进出。

    • 上次修改(上次更改时)
    • 删除/更新

    因此,当显示表的视图时,只显示任何行的最新更新或添加。但是,该表仍然包含所有现有的更改和行删除。