3

データベース接続を Session オブジェクトに保存できますか?

4

5 に答える 5

5

これは一般的に推奨されません。Application 変数の接続文字列と、適切なヘルパー関数/クラスを使用する方法が、より好ましい方法です。ここにいくつかの参照があります。(デッドリンクはフィッシング サイトにつながるため削除されました)

于 2008-09-18T04:47:58.800 に答える
2

そうすることは、アプリケーションをシングルスレッド化する効果があり、悪いことになることを思い出しているようです。

于 2008-09-18T04:49:48.187 に答える
2

一般に、アプリケーション変数にはオブジェクトを保存しません (もちろん、セッション変数にも保存しません)。

データベース接続に関しては、絶対にダメです。その上、絶対に必要ありません。

データベースとの通信に ADO を使用している場合、すべてのデータベース接続に同じ接続文字列を使用する場合(そうです、必ずこれを Application 変数に格納します)、「接続プーリング」が舞台裏で実装されます。これは、接続を解放しても、実際には破棄されないことを意味します。同じ接続を必要とする次の人のために脇に置かれます。そのため、次に同じ接続を要求するときは、明示的に作成してインスタンス化する必要はなく、すぐに使用できるようになります。これは非常に優れた効率の改善です。

于 2008-09-23T12:02:06.363 に答える
1

このリンクからhttp://support.microsoft.com/default.aspx/kb/243543

セッションにデータベース接続を保存しないでください。

私が理解していることから、そうする場合、同じユーザーに対する後続の ASP 要求は同じスレッドを使用する必要があります。

したがって、サイトが混雑している場合、「あなたの」スレッドはすでに他の誰かによって使用されている可能性が高いため、スレッドが使用可能になるまで待つ必要があります。

これにさらに多くのユーザーを掛けると、すべての人が他の人のスレッドを待ち、サイトの反応があまり良くないことになります。

于 2008-09-26T06:04:53.123 に答える
-2

CJM が述べたように、接続を Session オブジェクトに格納する必要はありません。接続プーリングの方がはるかに優れています。

于 2008-09-23T12:05:27.290 に答える