2008-09-02 7 views
3

最近、SQL Server> = 2005サーバーに.netアセンブリを配置して、.net関数をT/SQLステートメントで呼び出すことができることを発見しました。SQL Server 2005での.netアセンブリの使用

私はこれらの人々が何をどのように使用しているのかと考えました。

答えて

0

私はそれが非常に有用であることが分かった。

私はMSSQL2005 XML関連の機能を拡張するためにこの可能性を使用しました。

正しく覚えていれば、独自のデータ型を導入することもできます。

0

これは、オペレーティングシステムと何らかの形でやりとりする必要がある場合に通常使用されます。たとえば、メッセージをMSMQに置くか、ファイルに書き込む場合などに使用します。また、.NETで既に実装されている複雑な数学的計算や財務計算があり、T-SQLで書き直したくない場合にも便利です。

3

SQL 2005でのCLRの最初の汎用的な使用私は、文字列操作と正規表現を使用したパターンマッチングを実行するさまざまな関数を持つSQL 2005アセンブリを作成しました。 SQL 2005のネイティブ文字列関数は、電話番号やクレジットカード番号などの共通形式を検証したり、ストアドプロシージャ内でアドホックな正規表現を実行できるように拡張することができます。

確定的なユーザー定義関数については、SQL CLRサポートが非常に優れていることがわかりました。

+1

このために独自のライブラリを作成するのではなく、SQL#ライブラリ(無料版と有料版の両方)http://www.sqlsharp.com/を使用することもできます。それはすぐにすぐに多くの機能を提供します。私は無料版の幸せなユーザーです:) –

0

SQL 2005とのCLRの統合は、.NETで書かれたユーザー定義関数/ストアドプロシージャやユーザー定義のデータ型に特に便利です。例えばSQLがオブジェクトと参照プロパティを定義できるようにする、大量のデータ型を書くことができます。あなたは、例えば、日常的な超時変を書くことができます。

0

異議あり、私はあなたに同意します。アセンブリは、T-SQLで達成可能でもほとんど達成できないもの(hackishメソッドを使用して)にも素晴らしいものです。

シンプルな使い方が鍵です。次のことに注意してください。

  1. アセンブリを使用すると、信頼/セキュリティ/アクセス許可の設定の問題が発生します。

アセンブリをデータベースに定義する必要があります。アセンブリが署名されていない場合、データベースは、UNTRUSTEDコードを許可する必要があります。このデータベース設定は、データベースの接続解除/再接続時にリセットされます。

  1. アセンブリの使用は、データベースだけでなくSQL Serverの構成に影響します。

アセンブリを実行するには、まずSQL Server Lightweight Poolingが無効になっていることを確認する必要があります。

  1. アセンブリ関数の場合、データ操作では控えめにしてください。特に、混雑したテーブルでは

可能であれば、一度に多くの行に影響を与えようとするAssemblyメソッドを使用しないでください。テーブルトリガー内で使用されているものを注意してください。これらのいくつかはパフォーマンスを急激に低下させるでしょう。

関連する問題