最近我接受了一次采访,我被问到了上述问题。
当我想到它时我很蠢。
采访者说:所有人都说观点很多 优点,但我发现没有 缺点,为什么会这样?
修改
根据所有专家的答案,我想我可以总结一下:
答案 0 :(得分:4)
当表格不存在时,视图将无效。
如果是多个表,则无法使用dml。
它也是数据库对象,因此占用空间。
当删除表时,视图变为非活动状态..它取决于表对象。
从视图查询比直接从表中查询需要更多时间
答案 1 :(得分:4)
我要说的大多数事情都已经涵盖了,我会补充一点。
视图在许多情况下很有用,但过多地使用它们可能是一个错误,因为它们在查询结构方面牵扯到了你的手。通常,当您的整个查询中包含多个视图时(特别是在视图分层时),或者视图的调整目的与目标略有不同时,您会发现编写查询的方法要好得多。你只需扩展视图并改变逻辑。
答案 2 :(得分:2)
与任何工具一样,视图可能会被误用,尤其是当您不确定如何正确使用视图时。
Chris Mullins defines三个基本视图实现规则:
如果你没有把这些事情弄清楚,你就会遇到代码维护问题,性能问题,安全问题等等。
答案 3 :(得分:1)
我能想到的唯一缺点是,您可能会强制用户加入多个视图以便以对他们有用的方式获取数据,因为您现在主要有静态查询。
因此,如果视图是一次创建的并且预计永远不会改变,那么最终可能会有大量的视图为用户创建迷宫以进行导航,因此应该有一些更新视图的过程,在需求变化时保持它们的有用性。
答案 4 :(得分:1)
1)当表被删除时,视图将受到影响。 2)如果重命名了列名,则视图将显示异常“无效的列名”。 3)为大表创建视图时,它会占用一些内存。
答案 5 :(得分:1)
如果您编写一些复杂的视图,在查看视图中的简单数据时会花费更多时间。
影响效果。从视图查询比直接从表中查询需要更多时间。
如果视图会加入多个表,则可能无法执行任何DML 操作
表依赖 - 如果更改表,则需要 更新后的观点。
答案 6 :(得分:0)
一个视图允许DBA(数据库管理员)严格控制进出数据库的内容。
在银行业务中,视图通常用于永久跟踪对表格所做的每项更改。实际表通常包含“视图”未看到的其他列,例如:
因此,在显示表格视图时,仅显示最新更新或添加任何行。但是,该表仍包含每个现有的更改和行删除。
视图的主要缺点是表(用户程序员)无法直接更改基础表的用户(例如,出于性能原因)。此外,它确实为数据库管理员创建了更多工作。您可能还会考虑服务器上额外的CPU负担 - 特别是如果许多客户端都使用它。