私は大規模なWebサイトを開発しています.SQLプロファイラでlinqクエリをチェックしていたとき、約30回のログイン/ログアウト操作があることがわかりました。私は、すべてのDataContextに対してオープンな接続を使用してこれらのアクションを減らしたいと思いますが、どのように行うのかわかりません。提案はありますか?すべてのLinq DataContextに開かれた接続を使用
0
A
答えて
0
これは非常に悪い考えです。大規模なスケーラブルなWebサイトを作成しているため、Linq-to-SQLは接続自体を処理します。
Linq-to-SQLは、内部で接続の開始と解放を効果的に処理します。接続が正しく再利用され、単一のコンテキストごとに開かれないように、デフォルトのADO.NET接続プーリングを使用します。
すべてのコンテキストで単一接続を使用するのは、アプリケーションを拡張性がなく動作しないものにすることです。単一の接続では1つのトランザクションのみが許可されるため、2つの要求が同時に変更を行い、独自のトランザクションを使用すると、アプリケーションがクラッシュします。
コンテキストを共有せず、接続を共有しない - ADO.NETで接続プーリングを処理し、すべての単一の要求に対して新しいコンテキストを作成するか、深刻な問題が予想されます。
関連する問題
- 1. LINQ to SQL DataContext接続エラーの報告
- 2. App.configからの接続文字列の取得とLinqのdataContextでの使用
- 3. DataContextで手動で接続を開いたときのパターン
- 4. LINQ to SQL DataContextを使用して2つの接続文字列を簡単に変更できますか?
- 5. LINQからSQLへの複数のデータベース接続DataContext
- 6. 私はDataContextを使用する場合、データベースへの接続が開始されますか?
- 7. LINQを使用して複数のデータベースに接続する
- 8. 設定方法Webアプリケーションのweb.configで接続文字列を使用するLinq DataContext(Class Lib Proj)
- 9. DataContextにモデルを接続してデータベースを更新する方法
- 10. オブジェクトへのlinqの接続またはランタイム中にLINQKITを使用したクエリ
- 11. LINQ to SQLはDataContextの後にクエリを使用します。
- 12. jdbcプログラムを使用してOffice odbファイルを開くに接続
- 13. エンベデッドDBを使用したプロジェクトの公開エンティティフレームワークとの接続
- 14. プール内のすべての接続が使用されています
- 15. 公開鍵を使用してSSH経由でサーバに接続
- 16. LINQを使用してSQL接続リークを取得できますか?
- 17. Linq DataContext問題
- 18. DataContextはいつDBに接続しますか?
- 19. AndroidでORMLiteを使用して接続を再開する
- 20. 実際に開かれたdb接続を取得する
- 21. linq datacontextアタッチシナリオのGetModifiedMembers
- 22. DataContextを使用したデータバインディング
- 23. php接続されたすべてのクライアントソケットを取得
- 24. Datacontextを使用したInvalidOperationException
- 25. データベース接続は、私はTomcatの6で接続プーリングを使用していますすべての操作
- 26. アクセスが破棄されましたlinqからSQLへのDataContext
- 27. SearchCenterをイントラネットポータルに接続されたスタンドアロンサイトとして使用できますか?
- 28. node-mysqlモジュールを使用して接続を開くのはいつですか?
- 29. 分離されたファイルからの機能を使用してデータベースに接続
- 30. GCE redisを使用してクリックして展開node.jsをノードのクラスタに接続
ありがとう、私はそれをやるでしょう。 – Alireza
@ LadislavMrnka - あなたの答えから、DataContextインスタンスを作成しても、データベースへの新しい接続が作成されたというわけではないことがわかります。それを確認していただけますか?私が読んだところは、そうでないところを示すようです。 linq-to-sqlの場合、データベース接続がどのように作成され、リリースされるかについてのリンクを提供してください。 – Brian
@Brian:linq-to-sqlについてではなく、SQLサーバーに接続するときにデフォルトで使用される接続プーリングについてです。あなたは、ネットワーク接続の再利用(DataContextがデータを取得または保持する必要があるたびに毎回開くのではなく)のように考えることができます。 –