SQL Server 2005 CTPレビュー(開発者編) Page 2/3
SQL CLR vs. Transact-SQLの真実
株式会社システムインテグレータ
石橋 潤一
2005/9/6
ここまでSQL CLRの基本情報を紹介してきましたが、続いて実際のコードを見ながらTransact-SQLとSQL CLRの簡単な比較を行いたいと思います。
まずはTransact-SQLから。処理としては、あるテーブルからデータを取り出し、条件に従って処理を行い、結果を返すという単純なものです。
CREATE PROCEDURE sp_stored AS |
リスト1 Transact-SQLの典型的なコード |
C#などのオブジェクト指向言語に慣れていると、非常に見づらい部分もあると思います。また、コーディングに当たってはテキストエディタでコーディングしているようなものなので、決して生産性は高くありません。
続いて、同じ処理内容をSQL CLRで書いたものです。
using System; |
リスト2 SQL CLRで書き換えたコード |
Transact-SQLから一転、見慣れたどこにでもあるデータベース・アクセスを行うC#のコードです。SQL CLRではこのような“慣れた”コードでストアドプロシージャを作成することが可能となります。また、SQL CLRで作成したストアドプロシージャの利用方法はTransact-SQLで書かれたものと同様で、コードをコンパイルした後SQL Server上に配置することにより、呼び出すことができます。
Transact-SQLに比べ、普段から使い慣れた言語を用いてコーディングするアドバンテージが大きいことに加え、コーディングの際は非常に優れた統合開発環境(IDE)であるVisual Studio 2005を利用できます。サンプルのコード量ぐらいでは特に問題はありませんが、例えば会計システムの仕訳処理をストアドプロシージャで実装した場合、コードは数千、数万行になってしまうこともあります。このようなコード量になると当然潜在的なバグが増え、コードをデバッグする環境によって大幅に生産性の違いが生まれるでしょう。
また、Transact-SQLのサンプルにはなかった例外処理(try…catch…)をSQL CLRのコードに加えていますが、こういった言語仕様としての優位性もSQL CLRの強みです。(次ページに続く)
2/3 |
Index | |
連載:SQL Server 2005 CTPレビュー(開発者編) SQL CLR vs. Transact-SQLの真実 |
|
Page
1 ・SQL CLRが開発者に与えるインパクト |
|
Page 2 ・SQL CLRでコーディングはどう変わるか |
|
Page 3 ・Transact-SQLか? SQL CLRか? パフォーマンスで勝負! |
SQL Server 2005 CTPレビュー |
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|