5

Access データベースからデータを頻繁に読み取るアプリケーションを使用していますが、接続プールを使用する方法はありますか?

私のオープン データベース メソッド:-

private bool OpenDatabaseConnection(string databaseName)
{
    try
    {
        string connectionString = "Provider = Microsoft.Jet.OLEDB.4.0; " +
            "Data Source = " + databaseName + ";";
        settingsDbConn = new OleDbConnection(connectionString);
        settingsDbConn.Open();
    }
    catch (Exception)
    {
        return false;
    }

    return true;
}
4

3 に答える 3

6

@sll のコメントに同意しますが、質問に答えるために、この文字列を接続文字列に追加します

OLE DB Services=-1

これにより、JET OleDB プロバイダーによる接続プールが強制されます。
ただし、この設定の有無にかかわらず、アプリのパフォーマンスをテストしてください。
違いは無視できるはずです。そして、この設定では、con.Close で閉じるか、usingステートメントに接続をカプセル化して、常に接続を接続プールに返すようにしてください。

上記のコードを見て、私は非常に注意します。

于 2012-04-04T15:09:24.790 に答える
3

connectionstring使用できる属性は次のとおりです。

  • すべてのサービス (デフォルト)
    OLE DB Services = -1;
  • プーリングを除くすべてのサービス
    OLE DB Services = -2;
  • プーリングと自動登録を除くすべてのサービス
    OLE DB Services = -4;
  • クライアント カーソルを除くすべてのサービス
    OLE DB Services = -5;
  • クライアント カーソルとプーリングを除くすべてのサービス
    OLE DB Services = -6;
  • サービスなし
    OLE DB Services = 0;

ソース: https://docs.microsoft.com/en-us/archive/blogs/selvar/ole-db-resource-pooling

于 2013-01-10T18:42:32.490 に答える
1

アクセスデータベースのプールから何の利益も得られないと思います。パフォーマンスが問題になる場合、アクセスは適切な選択ではありません。

于 2012-04-04T15:34:14.810 に答える