在我的項目中,我們正在從我們的C++應用程序調用oracle程序, 由oracle提供的Pro * C/C++庫的幫助。當應用程序多次調用數據庫過程時,性能是否會受到影響?
我們有一個大的程序,我的想法是將程序拆分爲兩個模塊。但是他們的建議是一次調用這個程序,並且一次執行所有的工作。
我從他們那裏得到的原因是它會引起性能影響,因爲應用程序與數據庫多次交互。
我同意,當應用程序連接數據庫,調用過程並最終斷開每個過程調用的數據庫時,上述情況就會發生。但是,我們真正做的是在啓動時創建連接池,並重新使用預連接的數據庫連接與數據庫進行交互。
我的應用程序:
- 這是
multi-threaded application
,它可以處理大約每秒1000請求與線程池的大小爲20,目前爲每一個請求,我們與數據庫進行通信的4倍。
編輯:
「PLSQL和SQL之間的切換是不是周圍的其他方法快得多」。 Q1。這是如何與我的實際問題有關?我的問題是關於將程序分成兩個相等的部分。假設我有4個查詢在程序中執行,我只是將它分成兩個程序a和程序b,每個程序都有兩個查詢。
「調用PLSQL的pro * c調用性能受到影響」。 Q2。你是指應用程序(pro * C/C++)和數據庫(oracle)之間的通信嗎?如果是這樣,溝通是一個很大的表現?
在你連接的問題tom鏈接中,「但是不要害怕從PLSQL調用SQL - 這是PLSQL最好的」 Q4。在我們從PLSQL中調用SQL的時候,Wheather context switch會發生什麼?因爲按照上述說法,這似乎沒有影響。
您是否測量了它,看看真實世界的影響是什麼? –