VIEW也就是一串SQL语句,我想要提高速度,估计还是得优化一下库呀表呀,当然还有SQL语句了

解决方案 »

  1.   

    这本身不是视图的问题,建议把view的语句贴出来.然后给一个执行计划.我们给你看看.
    sqlplus>set autotrace traceonly;
    sqlplus>select *....你的语句
      

  2.   

    to: yangqingdelphi() 你说我查询需要优化是这建立视图的查询语句还是对视图进行查询的语句?我的视图的查询语句中就只有连接条件,其他的条件都没有。应该是视图的建立需要优化吧?要不在ORACLE的控制台中打开也那么慢的,我用ORACLE的SQLPLUS查询视图也半天没反应的。我是刚接触的,所以对优化都没什么概念的。还请各位多多指教。
      

  3.   

    如果你的空间够大,并且修改的情况不多,可以考虑 Oracle 提供的“实体化视图”,这样会显著提高在视图上的查询速度,但对在相应基表上的 DML 操作会产生较大的影响,所以一定要注意你的 DML 速度是否可以接受。
      

  4.   

    同意netcreator,需要根据execution  plan 作调整。
      

  5.   

    这种问题偶遇到过的:(惨痛的教训啊,用视图也一定要慎重,特别是在这种情况下
    我的视图的查询语句中就只有连接条件,其他的条件都没有。偶当时就是对几个表作了union的一个视图,后来用视图作稍微复杂点的查询的时候暴慢的,因为没有对视图限制其他条件,所以在使用时视图首先作连接操作,表的记录大的时候是非常慢的,然后才对视图加限制条件上去。后来干脆视图也不敢用了,放在那里做做简单查询,复杂的查询,数据量比较大的查询还是直接用表来的快一些如果哪位高手有更好的办法也请告诉偶
      

  6.   

    还有补充一点sql语句的优化建议,如果有暴慢的sql,首先看索引是否都已经正确添加了,其次看能否多加条件限制数据量
      

  7.   

    我的问题就同fuzhou77(浮舟) 说的一模一样。在数据量小时根本就没什么影响的,问题只有在数据大的时候才显现出来。视图只是几个表的连接,根本没有过滤条件。但如果在程序中直接用表关联查询,则就不会出现停了半天的情况。
      

  8.   

    你执行同样的sql语句比查询这个视图还要快?
      

  9.   

    对啊
    如果执行同样的sql语句,其速度是不会那么慢的。
    所以才郁闷啊!!!
      

  10.   

    涉及到Oracle的优化的问题,建议看看相关的书籍。