利用视图查询效率会变慢?

ptpa 2006-12-26 08:04:58
VIEW_STU_SCHEME 为视图
cj_lncjb ,cj_lrcjb 为表
select a.kch,a.kcm,a.xh,b.stu_sch_group_num,b.stu_sch_group_name
from cj_lncjb a, VIEW_STU_SCHEME b
where b.kch=a.kch and b.xh=a.xh and b.xh='1923206'
union
select a.kch,a.kcm,a.xh,b.stu_sch_group_num,b.stu_sch_group_name
from cj_lrcjb a,VIEW_STU_SCHEME b
where b.kch=a.kch and b.xh=a.xh and a.lrzt='1' and b.xh='1923206'
--这个语句查询时间需要0.06秒
但是 先创建视图:
create or replace view v_allcj as
select kch,kcm,xh from cj_lncjb
union
select kch,kcm,xh from cj_lrcjb where lrzt='1'
然后执行:
select a.kch,a.kcm,a.xh,b.stu_sch_group_num,b.stu_sch_group_name from
v_allcj a,VIEW_STU_SCHEME b where b.kch=a.kch and b.xh=a.xh and b.xh='1923206'
--这个语句执行10分钟都没出结果
请问一下这是为什么?
...全文
809 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ptpa 2007-01-22
  • 打赏
  • 举报
回复
谢谢各位,我最后采用的方法是 将数据量小的表组成试图后,再做联合查询
物化视图不是随着数据的改变而实时改变的
tiandehui1985() 谢谢,不过不知道这样改了会不会提高查询效率,但是最少看起来更规范
tiandehui1985 2006-12-27
  • 打赏
  • 举报
回复
VIEW_STU_SCHEME 为视图
cj_lncjb ,cj_lrcjb 为表
select a.kch,a.kcm,a.xh,b.stu_sch_group_num,b.stu_sch_group_name
from cj_lncjb a, VIEW_STU_SCHEME b
where b.kch=a.kch and b.xh=a.xh and b.xh='1923206'---在这里为何哥哥不改为A.XH = '1923206' 把WHERE b.kch=a.kch AND A.XH = '1923206'
union
select a.kch,a.kcm,a.xh,b.stu_sch_group_num,b.stu_sch_group_name
from cj_lrcjb a,VIEW_STU_SCHEME b
where b.kch=a.kch and b.xh=a.xh and a.lrzt='1' and b.xh='1923206'
同样 WHERE b.kch=a.kch and A.xh='1923206'
--这个语句查询时间需要0.06秒
但是 先创建视图:
create or replace view v_allcj as
select kch,kcm,xh from cj_lncjb
union
select kch,kcm,xh from cj_lrcjb where lrzt='1'
然后执行:
select a.kch,a.kcm,a.xh,b.stu_sch_group_num,b.stu_sch_group_name from
v_allcj a,VIEW_STU_SCHEME b where b.kch=a.kch and b.xh=a.xh and b.xh='1923206'
xb_feng 2006-12-27
  • 打赏
  • 举报
回复
这个对比不公平,不是视图的问题,你应该用下一句与你的视图对比:

select a.kch,a.kcm,a.xh,b.stu_sch_group_num,b.stu_sch_group_name
from (select kch,kcm,xh from cj_lncjb
union
select kch,kcm,xh from cj_lrcjb where lrzt='1')a,
VIEW_STU_SCHEME b
where b.kch=a.kch and b.xh=a.xh and b.xh='1923206'

你会发现这句应该不会比用视图快
zxbyhcsdn 2006-12-27
  • 打赏
  • 举报
回复
那你用物化视图就是了哟!
baojianjun 2006-12-26
  • 打赏
  • 举报
回复
视图的好处是让用户不 能得到和修改基础表的机构,也可以保存常用的查询语句 省却书写的麻烦
ptpa 2006-12-26
  • 打赏
  • 举报
回复
哦 难怪 谢谢
再请问一个问题
什么时候可用视图 ?
用视图有什么好处
我的这个问题可能是表数据太多的原因
baojianjun 2006-12-26
  • 打赏
  • 举报
回复
因为你的视图先把所有数据查询了出来组成试图然后再从视图里查数据自然就慢了

17,078

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧