sql >> データベース >  >> RDS >> Sqlserver

SQL サーバーと .NET のメモリの制約、割り当て、およびガベージ コレクション

    問題は、何らかの理由で DataReader が閉じられていないことです。例外?メソッド ユーザーが DataReader を閉じるのを忘れていませんか?

    本体の外部で使用される DataReader を返す関数は、それを外部コードに閉じる責任があるため、Reader が閉じられるという保証はありません。リーダーを閉じないと、開いた接続を再利用できません。

    そのため、関数から DataReader を返すことは非常に悪い考えです!

    このテーマに関する全体的な議論を見ることができます/10507254#10507254">こちら .

    この関数の使用法を探します (GetDataReader )、リーダーが閉じられているという保証があるかどうかを確認します。そして、最も重要なことは、最初の DataReader が閉じられる前に、このコードが再入力され、同じコレクションを使用して新しい DataReader を開く可能性がないことです。 (CommandBehavior.CloseConnection に惑わされないでください。これは、DataReader が閉じられたときにのみ接続を閉じます... 閉じるのに失敗しない場合にのみ)



    1. スキーマでビューを作成することはできません

    2. 2つの区切り文字で文字列を分割し、タイプを変換します

    3. SQLランキングソリューション

    4. SQL Serverのブックマークルックアップとは何ですか?