アプリケーションがネットワーク上の.mdbファイルに接続します。コンピュータを32ビットのWindows 7から64ビットのWindows 10に交換するまでは、すべて問題ありませんでした。このアクションは、C#コードを使用してデータベースに接続することで時間がかかります。アプリケーションを起動してから1秒以下の時間から始まります。アプリケーションを実行した後ca. 8時間、データベースファイルのオープンには10秒以上かかる。 Ca. 5秒ごとにアクセスデータベースが接続されます。.mdbのデータベース接続が時間の経過とともに低下する
アプリケーションの再起動後、すべて正常です。頻繁に再起動することは、長期的な選択肢ではありません。クエリ自体は数msで完了し、クローズもOKです。 私は、プロセッサ使用率が約10%にすぎないことを見てきました。メモリ私は現時点では分かりません。
なぜデータベースに接続するのが時間の経過とともに減速するのか、誰もが知っていますか?したがって
public void OpenDb (string _sOpenString)
{
this.sFilePathToAccessDb = _sOpenString;
this.sConnectionString =
@"Provider=Microsoft.ACE.OLEDB.12.0;DataSource=" + this.sFilePathToAccessDb;
this.oOleDbConnection =
new System.Data.OleDb.OleDbConnection(this.sConnectionString);
this.oOleDbConnection.Open();
}
public void CloseDb()
{
if (this.oOleDbConnection != null)
{
this.oOleDbConnection.Close();
this.oOleDbConnection.Dispose();
}
this.oOleDbConnection = null;
}
public void foo()
{
OpenDb(@"\\fooserver\databases\bar.mdb");
//do some stuff
CloseDb();
}
「OpenDb」は起動時に呼び出されますか?または複数回ですか? – mjwills
ご迷惑をおかけします。異なる呼び出しで開くために、異なるAccessデータベースがあります。したがって、我々は 'OpenDb'を複数回呼び出します – Noran
接続文字列に追加されたmode = readを知っています。お待ちしております。 – Noran