かなり複雑なサイトのためにLinqをSQLに使用しています。ライブに行くと、データベースのタイムアウトがいくつかありました。私が気づいた最初のことは、データベースへの接続がかなり多いということでした。LinqからSQLへの接続
ADO.netのバックグラウンドから、すべてのサイトで1つまたは2つのプールされた接続のみが使用されるようにコードを作成しました。これにより、かなりの数の同時ユーザーでも許容できるパフォーマンスが得られました。
私の質問は、この古い方法で欠陥があったか、それともLINQを行う方法ですか?私たちのパフォーマンスの問題は、DBへの接続が多いために発生しているようですが、これが問題であれば、LINQのすべてのチュートリアルで言及されると思っていました。
提案がありますか?
ガーベッジコレクタは、データコンテキストを廃棄するのを手伝っていませんか?または、トラフィック量の多いサイトでは、短時間で開いているDataContextが多すぎるため、小規模な期間ではガベージコレクタが遅すぎる可能性がありますか? –
@Adrian Grigore:GCは最終的にデータコンテキストを破棄しますが、データコンテキストは開いているデータベース接続を保持しているため、完了したら明示的に閉じたいと考えています。 – casperOne
私はそこにdatacontextを使用しているので、適切に処分されています。しかし、私は接続を閉じる必要があるだろうと気付かなかった...これはどこに文書化されていますか? – ColinRobertson