请教一个递归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里的文件夹一样,点一个结点,取下一层结点。