表:va_edges_detail_temp
source_label :varchar2
target_label:varchar2
edge_weight:numberselect  v.*, level from va_edges_detail_temp v
start with v.source_label = '林梦'
connect by nocycle prior v.target_label = v.source_label
order by level;
当表中只有552行时,顺利执行,用时0.005秒。
而当表中有5000多条数据时,执行一直执行,出不来结果,这是怎么回事。

解决方案 »

  1.   


    我以前也碰到一个类似的问题,是执行一个有2万行数据,一个比较消耗内存的算法。也是几个小时出不了结果。
    不知道是不是oracle大内存算法的通病。
      

  2.   

    5000多行还不至于卡死呢。
    看看v$session_wait有什么等待
    把敏感数据处理一下,然后给些示例数据
      

  3.   


    我这里测试了一个 5W 行的数据,没有发现这个情况,你哪个版本的库? 说一下具体的小版本;
    oracle 11g 
      

  4.   


    我这里测试了一个 5W 行的数据,没有发现这个情况,你哪个版本的库? 说一下具体的小版本;
    oracle 11g 
    小版本?
      

  5.   


     这个程序的目的是找到人在一棵树所处的层级。我尝试用一个C++程序处理这个同样的数据集。这个C++程序大概就是一个经典的树遍历算法,结果只用了不到3分钟就得到结果了。
    郁闷是不是oracle不适合大数量,大内存消耗的算法。
      

  6.   


    我这里测试了一个 5W 行的数据,没有发现这个情况,你哪个版本的库? 说一下具体的小版本;
    oracle 11g 
    小版本?
    sorry, 看错了。版本是10.2.0.4.0