oracle10递归 nocycle,oracle 使用递归的性能提示测试对比
當你用start with connect by nocycle prior
進行遞歸查找數(shù)據(jù)的時候那么下面兩段代碼的性能肯定是有明顯差別的大家用的時候 請注意了代碼可以不看下面 直接看我的總結(jié)
//查詢某個文件夾文件夾ID=12里面的層次數(shù)以及 文件的個數(shù)
A:為文件之間的關(guān)聯(lián)關(guān)系 上下級關(guān)系
B:為文件夾里面的文件
正解:
復制代碼 代碼如下:
select count(0) cou,max(levels)+1 as levels
select C.a1,C.a2,C.levels...
from
(Select A.a1 ,A.a2,,,
level levels//層次關(guān)系
from A
where A.a1=,,,
and A.a2=....
start with A.a1 = 12
connect by nocylce prior A.ID=A.ParentID
) C left join B
on C.文件ID=B.文件ID
and C.文件類型=文件夾
錯解:
復制代碼 代碼如下:
select count(0) cou,max(levels)+1 as levels
select C.a1,C.a2,C.levels...
from
(Select A.a1 ,A.a2,,,
level levels//層次關(guān)系
from A
left join B
on C.文件ID=B.文件ID
where C.文件類型=文件夾
and A.a1=,,,
and A.a2=....
start with A.a1 = 12
connect by nocylce prior A.ID=A.ParentID
) C
上面代碼的區(qū)別在于
正確的做法是:
先遞歸循環(huán)出某個文件夾下面的所有的文件夾以及文件在關(guān)聯(lián)文件表查找文件的內(nèi)容
錯誤的做法是:
先找到某個文件夾下面的 文件夾和文件
然后再 遞歸循環(huán)出 他下面的文件夾里面所有的文件夾以及文件
這樣就造成了關(guān)聯(lián)關(guān)聯(lián)后冗余的數(shù)據(jù) 一起進行了 循環(huán)遞歸 本來就和文件沒有關(guān)系 不應該吧文件也放進來遞歸
免責聲明:本站所有文章和圖片均來自用戶分享和網(wǎng)絡收集,文章和圖片版權(quán)歸原作者及原出處所有,僅供學習與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系網(wǎng)站客服處理。
總結(jié)
以上是生活随笔為你收集整理的oracle10递归 nocycle,oracle 使用递归的性能提示测试对比的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 方舟手游毒气洞路线(方舟生存进化)
- 下一篇: 打厄加特用什么
