簡體   English   中英

使用 OracleConnection 對象的最佳實踐

[英]Best Practices using OracleConnection Objects

當我開發使用 Oracle 數據庫來存儲和檢索數據的 C# 應用程序時,我看到了兩種使用 OracleConnection 對象的可能方法:

  • 一個實例:在程序開始時初始化並打開一個實例,將該object傳遞給每個存儲或從數據庫中檢索數據的function,並在程序結束時關閉和處置該實例。
  • 多個實例:在每個function的開頭初始化並打開一個實例,該實例存儲或從數據庫中檢索數據,並在function的末尾關閉和處置它。

其中一個通常被認為是更好的方法嗎? 有第三種更可取的選擇嗎? 一種情況需要一種情況,另一種情況需要另一種情況嗎?

如果您使用 ConnectionPooling(默認啟用),則無需過多擔心這一點。

ConnectionPooling 將在需要或不使用時添加和刪除連接。 您可以配置這種情況發生的速度以及在池中維護多少連接。

請參閱此內容: https://docs.oracle.com/cd/B19306_01/win.102/b14307/featConnecting.htm

簡而言之,使用您的“多個實例”描述。 我會為每個 function 做這樣的事情:

using (OracleConnection cnx = new OracleConnection(conn))
{
    cnx.Open();
    //Do stuff with connection/
}

只要您沒有在conn連接字符串中明確禁用 ConnectionPooling,您就會使用該池。

此外,如果連接每次都斷開(即使未使用),長時間保持打開的連接可能會遇到問題,因此您必須處理該連接並檢查每個 function 內的連接是否打開。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM