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

SQL Server 2008:アンマネージ ライブラリをロードする CLR ストアド プロシージャはどのようにクラッシュセーフなのか

    このコードはもともと拡張ストアド プロシージャで使用されていたため、アンマネージ コードのようです。アンマネージ コードのバグは、プロセスを簡単にクラッシュさせる可能性があります。

    CLR 統合は拡張ストアド プロシージャよりもはるかに堅牢ですが、コードは引き続きインプロセスで実行されるため、エラーによって SQL Server がダウンしたり破損したりする可能性があります。 (比較として、理論的には、SAFE CLR ルーチンは SQL Server を破損させることはできませんが、SQL Server を完全にダウンさせることなく、サーバーの可用性を低下させる問題を引き起こす可能性があります。)

    基本的に、このシナリオで SQL Server をクラッシュさせない唯一の方法は次のとおりです。

    <オール>
  1. クラッシュする機能は使用しないでください。
  2. バグのあるコードを修正します。
  3. 別のプロセスでコードを実行します (実行可能ファイルの起動、Windows サービスの呼び出し、Web サービスの呼び出しなど)。マネージ .NET DLL を記述して、この対話を実行できます。ほとんどの場合、UNSAFE でロードする必要がありますが、適切に記述されていれば、実際には非常に安全です。


    1. MySQLを使用して1日の価格変動の上位%を計算するにはどうすればよいですか?

    2. org.hibernate.AssertionFailure:エントリのnull ID(例外が発生した後にセッションをフラッシュしないでください)

    3. VBA を使用して Excel を SQL にエクスポートする

    4. MySQLで2つの自動インクリメント列を作成するにはどうすればよいですか?