1

私はasp.net MVC + WebAPIエンティティフレームワークのコードファーストプロジェクトに取り組んでおり、非同期メソッドを使用しています。現時点では、コールごとにデータベース接続を作成しています。同時実行システムでアプリケーション全体で1つのデータベース接続インスタンスを使用するとどうなりますか?

データベース接続の作成には少し時間がかかります。そのため、サーバーへのすべての要求にデータベース接続の作成には時間がかかり、数千の要求に対しては時間がかかります。

私の質問は、アプリケーション全体で1つのデータベース接続インスタンスを使用するとどうなりますか?

+0

キャッシュポリシーも考慮する必要があります。毎回データベースから取得する必要のないデータや、アイテムが古くなったときにキャッシュをリフレッシュするための仕組みがあるかもしれません。 –

答えて

1

SQL ServerとOracleには接続プールがあるため、データベース接続の背後にある実際のリソースは、通話ごとに接続クラスを作成しても、通常は再利用されます。

シングルトン接続の場合は、同時にデータベース要求を行うことはできません。データベースへのシングルスレッドのボトルネックが発生します。

アプリケーションが実際にどれだけの同時性を持っているかによって、接続プールは大きくなり、縮小します。

関連する問題