検索
連載

SQL CLRの仕組みとメリットを理解しようSQL Server 2005を使いこなそう(4)(3/3 ページ)

5年ぶりのメジャーバージョンアップとなったSQL Server 2005。本連載では、SQL Server 2005への移行を検討しているデータベース管理者に向け、新規に実装されたさまざまな機能の詳細を紹介していく。(編集局)

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

Transact-SQL、ADO.NETとSQL CLRの比較

 SQL CLRの基本情報が分かったところで、Transact-SQLとADO.NET、SQL CLRのコード比較を行ってみましょう。サンプルとして、それぞれ1行のデータをテーブルへ追加しています。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 まず、Transact-SQLのコード(リスト1)ですが、SQL発行に特化した言語体系のため、サンプルのような単純な処理であれば、非常に短いコードで済みます。このことから、既存のTransact-SQLをすべてSQL CLRに置き換えるべきではない、ということが分かります。単純なデータアクセスであれば、Transact-SQLの優位性は変わりません。

 続いて、ADO.NET(リスト2)とSQL CLR(リスト3)の比較ですが、どちらもC#で書かれているため、構文などに変化はありません。変わった部分として、データベースへの接続方法が異なります。ADO.NETでは接続先のデータベースを

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

というような形で指定します。

 一方、SQL CLRの場合、実行ユーザーがSQL CLRを実行するSQL Serverに接続しているため、この情報を受け継いで接続先情報とすることができます。このような接続を「コンテキスト接続」と呼びます。コンテキスト接続はネットワークやプロセスを超えず、インプロセスのみの接続なので、パフォーマンスの向上が見込めます。

 コンテキスト接続を利用せず、従来のADO.NETのように接続先を指定し別のSQL Serverへ接続することも可能です。また別のデータソースに接続することもできます。例えば、System.Data.OracleClientプロバイダを使用すればSQL Server内部から直接Oracleサーバに接続することも可能です。

まとめ

 今回はSQL CLRの基本情報の紹介と、従来の手法に対する利点などの確認を行いました。SQL CLRが革新的な技術であり、今後SQL Server 2005を利用するうえで大きなインパクトとなることを感じ取れたと思います。

 これまで、SQL Serverを利用したアプリケーションでパフォーマンスが求められる場合、Transact-SQLを利用する必要がありましたが、生産性の問題などから、苦労した開発者も多いはずです。SQL CLRがTransact-SQLのすべてを置き換えられるわけではありませんが、多くの問題に直面する開発者には救いの手となるはずです。


 次回は、Visual Studio 2005を利用し、より具体的なSQL CLRの紹介を行います。お楽しみに!

著者紹介

石橋潤一

株式会社システムインテグレータ勤務。Web+DBの業務アプリをメインに開発に携わる。@IT連載記事「SQL Server 2005 CTPレビュー」執筆のほか、著書に『DBマガジン別冊 SQL Server 2005徹底活用ガイド』(翔泳社刊/共著)、『ASP.NET+SQL Server ゼロからはじめるWebアプリケーション』(ソフトバンクパブリッシング刊/共著)。



前のページへ |       

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る