我建的物化视图在最后的sql语句后边加上 order by XX
该物化视图只支持排序一天,第二天就不排序了!
望请哪位高手帮忙解决一下

解决方案 »

  1.   

    物化视图在Oracle数据库中是一张临时表,视图被删,该临时表也被删,
    所以我在建物化视图的时候,直接加上order by ,希望在造出来的临时表中
    数据是排序的,,可是呢,这张表里的数据只坚持了一天排序,第二条就不排了!物化视图是否支持排序?
    如果支持,应该怎么写?
      

  2.   


    你的materialized view的语句是怎样的。贴出来看看。
      

  3.   

    我的理解,materialized view和你的order by是没有直接关系的,不过是你order by是作为了这个materialized view的建立的结果集而已。怎么能理解这个物化视图就是排序的进行存储的了, 排序 和 存储是两个概念。
      

  4.   

    基本格式就是这么写的:
    create materialized view VIEW_ABC
    refresh force on demand
    as
     select  t.id, t.aa,t.bb,t.cc
       from abc t
    where t.aa='sort'
    order by  t.id这种写法支持排序一天,第二天就不排了
    真是怪了,
    难道是存在某种特殊的排序方法嘛?
    这种写法是暂时性排序,一定时间后就失去作用了,
    目前没有什么理论依据,猜测一下
      

  5.   

    create materialized view VIEW_ABC会建一个表VIEW_ABC  视图的数据就存在这个表里。你上面只是把 排序后的数据存到 VIEW_ABC。
    这个就像我们 用户注册一样。
    用户的数据是按 ”注册时间“顺序 插入的。可我们 select * from users  出来的数据一定是按 “注册时间” 排序出来的吗?想一想就清楚了。
      

  6.   

    所以使用时还要用 select * from VIEW_ABC order by idVIEW_ABC.id 上加索引,order by 也不慢。
      

  7.   

    总结:
    物化视图不支持排序,
    所以要使用物化视图,必须按自己的需要增加order by排序