2012-07-05 69 views
1

我正在寫一些Python代碼,用於監視新文件的某個目錄,並使用cx_Oracle模塊將新文件插入到數據庫中。此程序將作爲服務運行。在給定的時間,可能會有多個文件一次到達,但也可能會有一小時的時間段沒有收到文件。關於良好實踐:保持數據庫連接無限期打開是不好的?一方面,有些東西告訴我這不是一個好主意,但另一方面,爲每個收到的文件創建一個新的數據庫對象並在之後關閉它,特別是一次接收多個文件時,會有很多開銷。任何建議如何處理這將不勝感激。保持數據庫連接打開 - 良好實踐?

+1

經常打開它並不「禮貌」。插入是否有時間限制?如果沒有,您可以將它們緩存一分鐘左右,並且每分鐘執行一組數據庫操作。否則,您可以緩存該對象一段時間,並在閒置後關閉它。 – Wug 2012-07-05 14:20:39

回答

1

如果您只需要一個或兩個連接,我認爲保持打開無限期無損。

使用Oracle,創建新連接是一項昂貴的操作,與其他一些數據庫(如MySQL)相比,創建新連接非常便宜。有時甚至可能需要幾秒鐘才能完成連接,如果它們頻繁關閉和打開連接,它們可能會成爲某些應用程序的瓶頸。

Oracle上的空閒連接使用少量內存,但除此之外,它在閒置時不消耗任何其他資源。

爲了讓您的DBA高興,您需要確保您沒有大量空閒連接,但我會對一兩個人感到滿意。