因此,我正在閱讀Oracle數據庫10g的Ian Abramson初學者指南(來自使用mysql),它提到了PL/SQL並給出了使用它的所有這些重要理由,但是我正在這樣做準備重寫我公司使用的幾個應用程序。PLSQL中的表操作比在外部應用程序中運行效率更高嗎? (Oracle 10g)
我的程序員認爲,如果PL/SQL在數據庫訪問方面效率不高,所有解析和查詢都應該在客戶端程序上完成,以將負載從Oracle服務器中分散出去。我認爲我們應該劃分代碼並嘗試避免代碼重複,PL/SQL可以幫助我們做到這一點。我們並沒有真正知道(而且這本書沒有告訴我們),PL/SQL中的數據庫訪問的效率是如何在不同的機器上運行的應用程序上運行的,而這個機器會產生3-5(較大的)每個操作的查詢。我認爲它更可能運行得更快,因爲(據我所知)pl/sql函數存儲並保存它們的執行計劃,並且傳統的網絡開銷將減少3-5倍(取決於查詢的數量)
我知道我可能在這裏要求更多的意見,但是,如果我正在處理一個查詢,如「Get A,如果A.property,得到B,如果B.Property,得到C ..」 (它實際上是對同一個表的遞歸操作,我看到的遞歸的最高級別是5,但這並不意味着它不可能是無限的),最好是儘可能多地在pl/sql中運行由於減少往返時間/緩存執行計劃,還是將過度檢查放在客戶端應用程序中更好? – Sidney 2014-09-04 14:31:06
不知道你在做什麼,因爲「如果a.property,得到b,如果b.property ...」實際上不是SQL查詢。另外,不確定你的意思是「過度檢查」......? – 2014-09-04 15:00:18
啊,對不起,我正在試圖解決一個冗餘的過程。我們有一個有一些遞歸索引的表。例如,客戶端應用程序中的邏輯結構類似於「While(A.next不是0)從數據庫檢索B,將A設置爲B」。重複檢查以查看A.next是否爲0,並重複查詢以從數據庫中獲取B.我想知道是否這樣的邏輯不會更好地在PL/SQL中實現。 – Sidney 2014-09-04 15:03:24