firebird 2.1 を 3.0 (SuperServer) に変更してから、1 か月ほどかけてメモリを最大ハードウェア (20GB) まで徐々に増やしていきます。Firebird サーバーには、合計サイズが約 30 ギガバイトの 6 つのデータベースがあります。クライアント アプリケーションは、ADO.NET Data Provider バージョン 5.0.5.0 を使用する .NET WinForm および Windows Service です。
すべてのクライアント アプリケーションとサービスを終了しても (開いている接続はありません)、firebird プロセスは引き続き 20 ギガバイトのメモリを使用し、firebird サーバーを再起動したときにのみ解放されます。
以前のバージョンの Firebird では、この問題は同様の大規模データベースや同じクライアント アプリケーションでは発生しません (コードに変更はなく、新しい ado.net プロバイダー バージョンに切り替えるだけです)。
これは標準的な動作ですか?新しいバージョンの Firebird 構成に特別な取り決めはありますか? おそらく、私は Firebird 3 の動作のいくつかの目新しさを見落としているのでしょうか?
はい、using
ステートメントとdbConnection.Close();
どんな知恵でも嬉しいです