5年ぶりのメジャーバージョンアップとなったSQL Server 2005。本連載では、SQL Server 2005への移行を検討しているデータベース管理者に向け、新規に実装されたさまざまな機能の詳細を紹介していく。(編集局)
--Page 1--
SQL CLRの登場背景
--Page 2--
SQL CLRのメリット
SQL ServerへのSQL CLRの登録
SQL CLRのセキュリティモデル
--Page 3--
Transact-SQL、ADO.NETとSQL CLRの比較
まとめ
SQL Server 2005では、.NET FrameworkのCLR(Common Language Runtime:共通言語ランライム)コンポーネントが統合されました。CLRは.NETをサポートする各言語共通の実行エンジンですが、SQL Server 2005上でもCLRによるマネージドコードの実行が可能となりました(CLR上で実行されるコードをマネージドコードと呼びます)。
SQL Server 2005上で利用可能となったこの新しい技術を「SQL CLR」と呼び、マイクロソフトでは開発に関する新機能の中でも大きく取り上げています。
前回までお送りしたIntegration Servicesに続き、今回から複数回にわたってアプリケーション開発者にとって特に重要となるSQL CLRを解説していきます。
これまで、データベースのデータを処理する手法は、大きく分けて2つ存在しました。1つ目がADO.NETなどを利用した外部プログラムからのアクセス、2つ目がTransact-SQLを利用したストアドプロシージャからのアクセスです。
現在、データベースを利用する際に最も一般的な手法が外部プログラムからのアクセスです。ADO.NETなどのデータベースへアクセスするインターフェイスを利用し、参照や更新などの操作を行います。
最も一般的、ということでVisual Studioなどの開発環境やライブラリなども整っており、C#やVisual Basic .NETなど使い慣れた各種言語でデータベースへのアクセスを行うプログラムを記述できるため、開発生産性が非常に高い手法となります。
ただし、一点問題があります。SQL Serverの外部からアクセスを行うため、どうしてもパフォーマンスに問題が発生してしまいます。クライアントPCからアクセスした場合はネットワークがボトルネックとなり、SQL Serverと同一のサーバ上で実行したとしてもプロセスを超えたアクセスとなるため、処理効率の低下が避けられません。
ストアドプロシージャとは、SQLを拡張したプログラム言語Transact-SQLを利用して、一連のSQLの処理手続きを記述したプログラムです。あらかじめデータベースへの処理を1つのプログラムにまとめRDBMSに保存しておき、呼び出せるようにしたものです。
ストアドプロシージャはSQL Serverのプロセス内で実行されるため、非常に高速な処理が可能となります。このため、大量のデータを操作する際などは、非常に優れた手法といえます。
ただし、Transact-SQLは、データベース操作のための専用言語ということで、データベース操作以外の処理実装が困難であり、言語としての仕様の限界、開発環境の問題などから、慣れたプログラマでなければ生産性の維持が難しい言語です。
以上のように、それぞれの手法には一長一短があり、ここにSQL CLRが登場した要因が存在します。
手法 | メリット | デメリット |
外部プログラム | 開発生産性が高い | パフォーマンスが低い |
Transact-SQLによる ストアドプロシージャ |
パフォーマンスが高い | 開発生産性が低い |
表1 アクセス手法によるメリット/デメリット パフォーマンスと開発生産性の両立が、SQL CLRの登場背景となった。 |
Copyright © ITmedia, Inc. All Rights Reserved.