oracle 使用遞歸的性能提示測(cè)試對(duì)比
更新時(shí)間:2013年02月05日 09:24:49 作者:
先遞歸循環(huán)出某個(gè)文件夾下面的所有的文件夾以及文件在關(guān)聯(lián)文件表查找文件的內(nèi)容這是正確的做法,感興趣的朋友可以了解下,或許對(duì)你學(xué)習(xí)oracle遞歸有所幫助
當(dāng)你用start with connect by nocycle prior
進(jìn)行遞歸查找數(shù)據(jù)的時(shí)候那么下面兩段代碼的性能肯定是有明顯差別的大家用的時(shí)候 請(qǐng)注意了代碼可以不看下面 直接看我的總結(jié)
//查詢某個(gè)文件夾文件夾ID=12里面的層次數(shù)以及 文件的個(gè)數(shù)
A:為文件之間的關(guān)聯(lián)關(guān)系 上下級(jí)關(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.文件類(lèi)型=文件夾
錯(cuò)解:
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.文件類(lèi)型=文件夾
and A.a1=,,,
and A.a2=....
start with A.a1 = 12
connect by nocylce prior A.ID=A.ParentID
) C
上面代碼的區(qū)別在于
正確的做法是:
先遞歸循環(huán)出某個(gè)文件夾下面的所有的文件夾以及文件在關(guān)聯(lián)文件表查找文件的內(nèi)容
錯(cuò)誤的做法是:
先找到某個(gè)文件夾下面的 文件夾和文件
然后再 遞歸循環(huán)出 他下面的文件夾里面所有的文件夾以及文件
這樣就造成了關(guān)聯(lián)關(guān)聯(lián)后冗余的數(shù)據(jù) 一起進(jìn)行了 循環(huán)遞歸 本來(lái)就和文件沒(méi)有關(guān)系 不應(yīng)該吧文件也放進(jìn)來(lái)遞歸
進(jìn)行遞歸查找數(shù)據(jù)的時(shí)候那么下面兩段代碼的性能肯定是有明顯差別的大家用的時(shí)候 請(qǐng)注意了代碼可以不看下面 直接看我的總結(jié)
//查詢某個(gè)文件夾文件夾ID=12里面的層次數(shù)以及 文件的個(gè)數(shù)
A:為文件之間的關(guān)聯(lián)關(guān)系 上下級(jí)關(guān)系
B:為文件夾里面的文件
正解:
復(fù)制代碼 代碼如下:
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.文件類(lèi)型=文件夾
錯(cuò)解:
復(fù)制代碼 代碼如下:
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.文件類(lèi)型=文件夾
and A.a1=,,,
and A.a2=....
start with A.a1 = 12
connect by nocylce prior A.ID=A.ParentID
) C
上面代碼的區(qū)別在于
正確的做法是:
先遞歸循環(huán)出某個(gè)文件夾下面的所有的文件夾以及文件在關(guān)聯(lián)文件表查找文件的內(nèi)容
錯(cuò)誤的做法是:
先找到某個(gè)文件夾下面的 文件夾和文件
然后再 遞歸循環(huán)出 他下面的文件夾里面所有的文件夾以及文件
這樣就造成了關(guān)聯(lián)關(guān)聯(lián)后冗余的數(shù)據(jù) 一起進(jìn)行了 循環(huán)遞歸 本來(lái)就和文件沒(méi)有關(guān)系 不應(yīng)該吧文件也放進(jìn)來(lái)遞歸
相關(guān)文章
Oracle Table Demo語(yǔ)句應(yīng)用介紹
在開(kāi)發(fā)過(guò)程中可能會(huì)用到oracle table demo 操作語(yǔ)句,本文將以此進(jìn)行介紹,需要的朋友可以參考下2012-11-11Oracle 兩個(gè)逗號(hào)分割的字符串,獲取交集、差集(sql實(shí)現(xiàn)過(guò)程解析)
這篇文章主要介紹了Oracle 兩個(gè)逗號(hào)分割的字符串,獲取交集、差集的sql實(shí)現(xiàn)過(guò)程解析,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10Oracle賬戶被鎖錯(cuò)誤:the?account?is?locked解決方法
the?account?is?locked意思是賬戶被鎖定了,這種情況需要大家去解鎖,這篇文章主要給大家介紹了關(guān)于Oracle賬戶被鎖錯(cuò)誤:the?account?is?locked的解決方法,需要的朋友可以參考下2023-12-12Oracle停止數(shù)據(jù)泵導(dǎo)入數(shù)據(jù)的方法詳解
Oracle數(shù)據(jù)庫(kù)在使用的過(guò)程中常常會(huì)遇到這樣或那樣的問(wèn)題,而這些問(wèn)題常常又使我們感到很困惑,下面這篇文章主要給大家介紹了關(guān)于Oracle停止數(shù)據(jù)泵導(dǎo)入數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-06-06sqlplus 命令登錄 Oracle數(shù)據(jù)庫(kù)的多種方法
這篇文章主要介紹了sqlplus 命令登錄 Oracle數(shù)據(jù)庫(kù)的兩種方法,方式一通過(guò)sql*plus 命令窗口,方式2:通過(guò) cmd 窗口,每種方式給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09oracle 11g em重建報(bào)唯一約束錯(cuò)誤解決方法
今天在手工配置Oracle11g的EM時(shí)總是報(bào)如下錯(cuò)誤,也沒(méi)有找到解決辦法,以下是我的解決過(guò)程,希望可以幫助你們2012-11-11