日期:2014-05-17  浏览次数:20843 次

请教一个递归sql的编写,已经有了但是效率不高,要花8秒多的时间啊
SELECT * FROM tab  
 START WITH END =3444444  
 CONNECT BY PRIOR START= END

将表tab中end为3444444的所有节点取出,但是现在该表有五百万上的纪录,以后可能还会增加,如何解决该效率瓶颈问题?

------解决方案--------------------
在该表上创建索引后再试一下
------解决方案--------------------
SQL本身就那样了,从其他地方下功夫
------解决方案--------------------
1. 加个 index ( start,end)


2. 如果表不断增大,考虑是否将其改造成分区表
------解决方案--------------------
如果有500万记录,还是从程序的方面改要好一点,例如要浏览一棵树,但是你不用一次把一整个树都取出来给人看,可以象WINDOWS里的文件夹一样,点一个结点,取下一层结点。