質問

誰もが知っているべきであり、接続直後に仕上げていただけます。

による探傷私のドメインのオブジェクトモデルデザイン、または接続のためにフルページライフサイクル基本的にいう時間の財産となる接続に最初の呼び出し、そのページです。アンロード(..)で確認した場合は、db接続した開放しがありました。以降では、私の意見についても以外を閉じます。

これは問題ないでしょうか。やるべきだす閉じた直後に一を使用しますか?

よろしくお願いします。

役に立ちましたか?

解決

理想的ではありませんが、アプリケーションを書き換えることはありません。ページがさまざまな方法で大量の時間のかかる作業を行わない限り、ページのライフサイクル全体が迅速に実行されるはずです。実際には、接続オブジェクトが開いていることを意味する場合があります。シナリオによっては重要かもしれませんが、あなたの場合のようには聞こえません。

他のヒント

いいえ、大丈夫ではありません。

アプリケーションを拡大または拡張する必要がある場合、この問題を修正する必要があります。その接続を開いたままにしておくと、スケーリングする能力が低下します。接続を開くと、サーバーのメモリ、クライアントのメモリ、オープンロックの保持などが必要になることに注意してください。

Page.Unloadイベントに到達する前にページがクラッシュした場合はどうなりますか?接続が開かれます。私にとっては、常にできるだけ早く接続を閉じることをお勧めします。

はい、大丈夫です。

できるだけ早く接続を閉じることは、孤立した開いた接続を防ぐためのベストプラクティスですが、接続が近いことを確信している場合は、問題はありません。

最近では、適切なASP.NETアプリはすべて接続プーリングを使用しており、プールは基本的には開いた接続の集まりです。あなたの場合、それはあなたが保持している接続が「占有」されていることを意味します。他のリクエストの処理には使用できません。

私が見る限り、それはあなたのページが作業/レンダリングを行うのに必要な時間に依存するスケーラビリティの問題になるでしょう。あなたが言うように、100人のユーザーしか期待しないなら、おそらくそれは問題ではないでしょう-もちろん、100 req / secでない限り。

技術的な観点からは問題ありません。私の知る限り、ほとんどのクライアントサーバーアプリケーション(Webおよび非Web)、たとえばそのような動作に使用される従来のASPコードを含めて、たとえば、ページ全体に対して1つの接続を宣言して動作します。

ページがクラッシュしますか?これが、使用するものであり、最終的に使用するものです

とはいえ、DBのパフォーマンス(つまり、スケーリング)*のために、接続をできるだけ短い期間開いたままにしておくことをお勧めします。

*キャリアの早い段階でメンターからこれを言われました。実際に自分でテストしたことはありませんが、理論的には正しく聞こえます

もちろんだ ができ 保持しなければいけないのか?します。近では使用後に最後にブロックとなります。フェア-トレードオフからの"後には、毎回シングル利用"がで毎にブロックの使用であれば、aptに格納され論文集、更新するには、対象の列を削除その他の連続きの開閉周りの人運営、仮にそれらはすべてに包まれtry/catch/ついに登場。●

複数のクエリを実行している場合、ページの存続期間中、接続を開いたままにしておく必要があります。通常、実際には多くのページで接続を再利用します。

より多くの情報に基づいた生産的なフィードバックを伴うより良い質問は、おそらくあなたがやっていることのいくつかのスニペットを提供し(コード)、この選択をした理由を拡大することだと思います。接続をそれほど長く開いておく必要のない、より優れたソリューションが存在する可能性が高くなりますが、少なくとも実際的な理由から、修正する価値があるかどうかについてフィードバックを得ることができます。

将来的には、コードビハインドでのデータアクセスから確実に移行する必要があります。

ORMを使用するときに接続を開いたままにしておくと便利です(セッションをビューで開く )最初の熱心なフェッチの後、必要に応じて他のデータを遅延ロードできるようにします。これは、接続を拘束しないようにページの応答時間が妥当な場合にうまく機能します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top