ASP.NET アプリケーションでは、MySQL の上に構築されたデータ層を実装しました。これは、Entity Framework を実装するためにConnector/NETを使用します。
これはほとんどの CRUD アクションで問題なく機能しますが、数百のレコードで INSERT ステートメントを実行すると、「接続が多すぎます」という例外がスローされます。
多くの個別の読み取り/書き込み呼び出しを行っていることは承知していますが (すべての挿入の前に重複するエントリをクエリし、さらに、挿入ごとに個別のクエリを使用して書き込まれる監査ログもあります)、接続しないでください。プールはこれの世話をしますか?
また、この同様のスレッドでは、OP は私が完全に同意するusingステートメントを使用するように指示されました。別の要求がキューに入れられている場合。
とにかく、connect timeout
現在は 50 です。これはすでにかなり小さいですよね? 500 まで上げても違いはありませんでしたが、10 まで下げても、同じ例外がスローされる前に挿入が約 50% 増えました。
では、DbContext のすべてのインスタンスがusingステートメントでラップされているのに、なぜ「接続が多すぎます」という例外が発生するのでしょうか?
更新:問題の根本原因は、実際にはリポジトリの 1 つがコンストラクターで DB 接続を開いていることが原因であることがわかりました。この接続は使用されていませんでした。申し訳ありませんが、これはニシンであることが判明しました。ご提案いただきありがとうございます。