13

T-SQL よりも SQLServer CLR が提供する利点は何ですか? .NET 構文の使用は T-SQL よりも簡単ですか? ユーザー タイプを定義できることはわかりましたが、なぜそれが優れているのかはよくわかりません。たとえば、電子メールの種類を定義すると、プレフィックス プロパティとドメイン プロパティが含まれます。次に、ドメインまたはプレフィックス、またはその両方で検索できます。ただし、プレフィックスと呼ばれる列とドメインと呼ばれる列をいくつか追加して、それらを個別に検索するのとどう違うのかわかりません。多分誰かがこれがより良い現実世界の理由を持っているでしょう.

4

4 に答える 4

17

良い例を1つ挙げます。CLRにはRegExオブジェクトが組み込まれていますが、SQLServerにはまったく欠けています。これで、正規表現ベースの検証制約/修復を行う関数を作成するのは簡単です。

于 2009-01-13T17:17:39.243 に答える
8

さまざまな目的。CLR ストアド プロシージャは、高度な手続き型のコードを記述したり、T-SQL からアクセスできないシステム機能を使用したりすることが役立つ場合に役立ちます。CLR に対してアプリケーション sproc を作成できない固有の理由はありませんが、通常、CLR sproc をアプリケーション sproc を作成するための単なる別の言語と見なすことはありません。通常、CLR sproc のほとんどの用途は、アプリケーション コンポーネントではなくシステム目的ですが、これは厳密なルールではありません。

CLR 統合レイヤーは、カスタム集計関数など、T-SQL ストアド プロシージャから直接利用できないいくつかの機能を提供します。また、.Net ライブラリへのアクセスも提供します。これは、T-SQL がサポートできない機能へのアクセスを取得するのに役立つ場合があります。

T-SQL は従来のデータベース処理を実行し、クエリ オプティマイザーと統合するため、セット指向のデータベース コードに最適です。CLR sprocs がクエリ オプティマイザーに情報を提供するための API フックがありますが、これにより複雑さが増します。

CLR 統合を使用して、T-SQL コードにアクセスできる関数を定義することもできます。場合によっては、T-SQL 関数よりも高速でメモリ効率が高いことがあります。CLR 統合に関するWrox プレス ブックでは、これについてある程度詳しく説明しています。

于 2009-01-13T17:12:16.710 に答える
6

たとえば、SQLCLR メソッドから外部 Web サービスを呼び出すこともできます - T-SQL では正確には不可能です :-)

マルク

于 2009-01-15T17:19:40.063 に答える