优点和缺点
当权衡到底是使用底层的表还是使用视图来抽取数据时我们总是想在性能与抽取的复杂性之间取得一个平衡读者需要理解这两种方式的各种后果并在两者之间找到一个最佳的平衡点
视图具有下列优点
抽象了数据模型的复杂性这是对于终端用户而言的
代码重用除非将SQL查询持久化在客户端的代码中(嵌入式SQL)或者持久化在存储过程或视图中否则它只是一个暂态的结果
增强的安全性可以使用视图来限制用户对数据的访问
个性化可以基于同一个数据集来创建多个不同的视图这些视图可以暴露不同的字段对于不同的用户将某些字段重命名等
使用视图的主要缺点如下
性能损失视图顶多与用于创建它的查询执行得一样快对于数据访问无法以对表执行的同样的方式对视图进行优化
代码的可移植性不同RDBMS的实现存在着显着的差异
复杂性视图对终端用户隐藏了复杂性但视图自身的复杂性依然存在视图也需要维护由于向普通用户隐藏了源代码因此也增加了维护的成本
读者可能想知道在执行CREATE VIEW语句之后视图的SQL源代码将会怎样与其他DDL语句一样视图将被存储在数据库中可以通过RDBMS的系统目录系统存储过程或者INFORMATION_SCHEMA视图检索它更多信息请参见第章的内容
返回目录SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
数据仓库与数据挖掘培训视频教程