Chinaunix首页 | 论坛 | 博客
  • 博客访问: 671031
  • 博文数量: 845
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 5015
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 16:22
文章分类

全部博文(845)

文章存档

2011年(1)

2008年(844)

我的朋友

分类:

2008-10-15 16:26:57

  首先先来了解一下视图的概念和作用,视图的作用最大的目的有三个,一:为了保证数据的性,因为它对表中的一些字段是隐藏的,二:是为了简单的显示数据,三:视图就是把经常要进行操作的表字段放在一起。以前学习sql server的时候是这样理解的。但是oracle进行了细分,oracle把第三细分成为了物化视图,这个具体是什么样的概念我还没有学习!

  sql server的视图和oracle的视图创建,在语法上都是一样的,create view view_name is ..(select 语句)...在以前学sql server的时候有一个错误的观念,以为视图就是把几个表合成为一张表,这个思想不能说正确,但是它绝对不够准确,因为这张表并不是真实存在的,真实的情况是每当对某个视图进行操作的时候,都要执行一次视图的创建语句,所以说视图并不能带来性能的提升,它只是方便了对多个表数据的查找。

  当有固定的格式查询的时候,比如所登陆验证,最好的方案是采用过程,这样效率最高,而当有复杂查询,模糊查询的时候用视图就比较方便了,而当有些模糊查询也是有规律的时候可以采用创建一个过程来对视图进行操作,当然,视图上也可以建立索引,来进一步提升性能,关于数据库性能的提升和优化,我所知道的实在是太少了,继续学习。

  视图最常用的操作就是查询,当然也可以对视图进行其他DML操作,这取决于视图的复杂程度,假如视图只是针对某一张表的话,可以进行四种DML操作,而是多张表的时候却是不可以的。当然这也是有解决方法的,可以使用触发器来实现对视图的操作,比如说某视图由四张表的数据组成,那么就可以使用触发器,分步的完成插入操作,但是其实这样做没什么意义,效率不高,使用存储过程更加合适,更高效率!

【责编:Chuan】

--------------------next---------------------

阅读(311) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~