Uncategorized

開発者にとっての SQL Server 2008

(2008/03/06 関連技術情報を追加) 

こんにちは。

既にご存じの方も多いと思いますが、SQL Server 2008 の日本語環境でのプレビュー評価版 (February 2008 CTP) がリリースされました。

http://www.microsoft.com/japan/sql/2008/default.mspx

開発者の皆さん向けに新機能をブログでご紹介したかったのですが、このダウンロードにあわせて自習書なるものが使用できるようになっていますので、ここでは(私が注目している)新機能を軽くご紹介したいと思います。(自習書に加え、サンプルコードなどもダウンロードできます。是非お試しください!)

各カテゴリは、奥主 が IT Pro 道場(アプリケーションプラットフォーム編)で記載していた SQL Server 2008 の「売り」のカテゴリにあわせています。
開発者視点ですが、自習書を読む前の整理になれば幸いです。

SQL Server 2008 自習書シリーズ
http://www.microsoft.com/japan/sql/2008/self-learning/default.mspx

Enterprise Data Platform

後述する Pervasive Insight とも関連しますが (後述するリソースガバナなどは、このカテゴリーの1つでもあります)、 内部統制 (JSOX) などをはじめとするエンタープライズな活用・運用を想定した必要機能が盛り込まれています。

  1. ポリシーベースの管理
    例えば、「スキーマが・・・の場合には、新規のテーブル作成を許可しない」など、グループポリシー設定にも似た細やかな制御(ポリシーベースの制御)が実施したい場合があります。SQL Server 2008 では、こうした制御が可能になっています。
  2. 透過的暗号化 (TDE)
    データベースファイルを暗号化することで、暗号化がアプリケーション層に影響することなく実現できるようになっています。
    TDEを設定する前と後で、データファイルの中身を確認してみると一目瞭然です (データベースに入れた文字列などの情報が暗号化されます)。

Dynamic Development

SQL Server 2008 そのものの機能というよりは周辺テクノロジーというべき機能が多いですが、小高ブログ で頻繁に取り上げている Entity Data Model (及び Visual Entity Designer) や Astoria (無論、既存の LINQ も) といったテクノロジーが合流することになります。(各々のリリース日程などは未だ未定です。)

データベース上のデータの Cloud 上からの使用や、アダプター的なデータへのアクセス、動的言語からの利用、といった「がちがちのエンタープライズ」の分野に拘らない新しい概念での活用(もっと広い意味での「ストア」としての活用)が可能になります。

Pervasive Insight

コアのエンジンのパフォーマンス向上 (特に大容量データにおけるパフォーマンス向上) や、キューブデータの処理改善 (Start Join クエリの改善)、パーティション並列化の処理改善 (SQL Server 2005 で課題であった、複数パーティションの場合には 1 パーティション 1 スレッドしか割当たらないという動作の改善) などエンジンそのものの強化に加え (ただし、現在はCTP版ですので、この点でのご評価は御容赦ください、、、) 、開発の視点では、以下のような仕組みを活用することができます。 

  1. リソースガバナー (Resource Governor)
    Oracle をお使いの方は「データベースリソースマネージャ」と同じ仕組みを SQL Server に期待されたことがある方も多いのではないでしょうか (私はずっと待っていました、、、)。時間の厳しいバッチ処理などで、「昼間はオンライン入力を優先しているが、夜間はバッチのジョブを優先したい!」などリソース計画を設定して夜のバッチに間に合わせる、そんな設定がDB側で必要になるときがあります。
    Resource Governor は、まさにこうした計画を設定することができる仕組みです。(実行計画を変えて、信頼性とパフォーマンスモニターで確認してみてください。)
  2. 変更追跡機能 (CDC)
    これまた Oracle を例にして申し訳ありませんが、Oracle にはフラッシュバッククエリと呼ばれる機能が存在し、例えば「・・・時時点での・・・テーブルの一覧」をselect文で抽出するといったことが可能ですが、SQL Server 2008 にも同様の仕組みが実装されます。
    この技を憶えておけば、例えば、バックアップ/リストアという大がかりな仕掛けを使用するのではなく、管理者・開発者の「技」による簡易リカバリなどとして日常的に大活躍するでしょう。(Oracle をお使いの方は、この機能に救われたご経験がある方も多いのではないかと思います。私もあります、、、ほしかったこの機能も、、、)
  3. リッチなレポーティング
    進化した Data Mining Add-in (Excel)、Performance Studio、さらに Reporting Service による 3D レポートなど、BI 機能の強化がおこなわれています。

Beyond Relational

(以下は、一部です . . . ) 

  1. HierarchyID 型
    階層データを扱える HierarchyID 型という列が使用できます。私も経験ありますが、RDBで階層情報を扱う場合、例えば親のIDなどを保持すれば「表現」は可能ですが、「子の一覧を取得する」とか、「今のレベル数を取得する」とかの算出は再帰(recursive)検索が必要になるなどRDBには不向きでした。
    HierarchyID 型はこうしたロジックを効率よく実装した関数なども含まれていて、最適化された型として使用することができます。
  2. 空間情報、位置情報
    Virtual Earth に代表されるような位置や空間の情報などをデータ型としてサポートします(Geometry 型、Geography 型)
    入力系の仕組み (これらの座標情報をどう取得し、どう入力するか、など) は、どのような提供形式となるか未定ですが、今後にご期待ください。

    http://www.microsoft.com/sql/2008/spatial.asx

また、上記で細かな機能は省略しています (T-SQL は、まだまだ拡張されている機能がありますので、是非自習書のサンプルコードで体験してみてください)。

また、「パフォーマンス向上」の実態は、この書き方ではまだぼんやりとしていると思います。「Beyond Relational」 の分野についても、現在の February 2008 CTP などで公開されている情報に絞って記載して、まだこの CTP で見えていない機能は実はいくつかあります (いくつかは、こちらなどでもご紹介されています)。

これから先に出てくるプレビュー版や技術情報などにも是非ご注目ください。

[関連技術情報]

SQL Server 2008 リソース
http://technet.microsoft.com/ja-jp/bb814942.aspx

SQL Server 開発チームブログ
http://blogs.msdn.com/sqljapan/

 

Categories: Uncategorized

Tagged as:

1 reply»