運用
IT Proから見たSQL Server 2005 第2回

1.データベース・エンジンの機能強化点(1)

デジタルアドバンテージ 小川 誉久
2005/12/27

データベース・アーキテクチャ、ストレージ・エンジンの機能強化点

 SQL Server 2005のコアであるデータベース・アーキテクチャ、ストレージ・エンジンの新機能や機能強化点について見てみよう。主要なものを一覧にすると以下のようになる。

新機能/拡張機能 内容
64bitネイティブ・サポート AMD Opteron、AMD Athlon 64、Intel Xeon(EM64Tサポート)、Intel Pentium 4(EM64Tサポート)、Intel Itanium搭載システムをネイティブ・サポート
NUMAサポート マルチプロセッサ環境で効率的にメモリを使用可能にするNUMA(Non-Uniform Memory Architecture)をサポート
.NET Framework統合 データベース・エンジンに.NET FrameworkのCLRを統合。SQL Server 2005のストアド・プロシージャをVB.NETやC#などの.NET対応言語で開発することが可能になった
マルチインスタンス拡張 SQL Server 2000では最大16までだったマルチインスタンス・サポートを最大50に拡大(Enterprise Editionのみ)
XMLのサポート ネイティブXMLデータ型やXQueryなど、XMLのサポートを追加
HTTPネイティブ・サポート データベース・エンジン自身にネイティブなHTTP対応を追加。これにより、IISやほかのWebサーバの介在なしに、SQL Server 2005のみでWebサービスによる要求を受け付け可能になった
パーティショニング 単一のデータベース(テーブル、インデックス)を複数の部分に分割可能にするパーティショニング機能を強化。分割した部分を最適に配置することで、大規模なテーブルやインデックスを効率的に管理し、アクセス性能を向上できる
複数のアクティブな結果セット(MARS:Multiple Active Results Sets) 単一の接続において、複数の結果セットをサポートするMARS機能を追加。従来は接続ごとに1つの結果セットしかサポートされなかった。これによりアプリケーションは、単一の接続で複数のデータベース処理を切り替えることが可能になる
データの一括インポート バルク・データのインポートの指定を、従来のbcpコマンド用の非XML形式に加え、XML形式で記述できるようにした
フルテキスト検索カタログのバックアップ&復元 フルテキスト検索用カタログをデータベースとともに、または独立してバックアップし、復元可能にした
ユーザー/スキーマ分離 データベース・オブジェクトはスキーマに属すようにし、セキュリティ能力を高めた(従来のSQL Server 2000では、ユーザーに属する形式になっていた)
より詳細なパーミッション管理 サーバ、データベース、スキーマといったスコープ単位に、より多様なパーミッションを設定可能にした
パスワード・ポリシー パスワードの強度や有効期限、ロックアウト・ポリシーなどをWindowsのパスワード・ポリシーと統合できるようになった(要Windows Server 2003)
データベース・アーキテクチャ、ストレージ・エンジンの新機能、機能強化点

 前回説明したように、今回発表されたSQL Server 2005は、SQL Serverシリーズの第三世代にあたる製品である。前バージョンのSQL Server 2000は、さまざまな機能強化はあったものの、世代としてはその直前版であるSQL Server 7.0と同じ第二世代の製品だった。

 これに対しSQL Server 2005では、データベース・アーキテクチャやストレージ・エンジンを抜本的に革新した新世代製品になった。64bit環境へのネイティブ対応や大規模システム向けのNUMAサポートなどの新しいハードウェアのサポート、.NET Framework対応やHTTPネイティブ・サポートなどのSQL Serverエンジンの機能強化、ユーザー/スキーマ分離などのセキュリティ機能強化などが実施されている。

ハードウェア・サポート

 前版のSQL Server 2000の64bit対応はIA64プロセッサ(Intel Itanium)のみだったが、SQL Server 2005では、これに加えAMDおよびIntelが提供するx64プロセッサへのネイティブ対応が加えられた。具体的には、AMDのOpteronおよびAthlon 64、IntelのXeonおよびPentium 4(いずれもEM64T:Extended Memory 64 Technology)に対応している(EM64Tは、IA32アーキテクチャに64bit対応を加えたもの)。データウェアハウスなどの大規模なデータベースでは、同時に使用できるメモリ量が性能に直結する(スワップによるハードディスク・アクセスはメモリ・アクセスより数千倍遅い)。IA64に加え、低価格サーバが採用するx64サポートが追加されたことで、今後は中規模クラスのデータベースでも、64bitシステムが積極的に利用されることになるだろう。

 NUMA(Non-Uniform Memory Architecture)は、マルチプロセッサ・システムにおいて、プロセッサ間でのバス競合を低減し、メモリ・アクセス効率を向上してパフォーマンス向上を図るしくみである。SQL Server 2005では、このNUMAサポートが追加された。NUMAを活用するには、OSとデータベースの双方がこれに対応する必要があるが、Windows Server 2003とSQL Server 2005の組み合わせでこれが可能になった。複数プロセッサからなる大規模システムの性能向上に寄与し、SQL Server 2005のスケーラビリティの幅を拡大することになるだろう。

.NET Framework統合

 .NET Framework統合については前回説明したとおりだ。SQL Server 2005のデータベース・エンジンに.NET Frameworkが統合されたことで、データベース開発者は、ストアド・プロシージャやユーザー定義関数など、従来は原始的なSQL言語に頼っていた開発作業を、C#やVB.NET(Visual Basic .NET)などの最新言語で行えるようになる。これは、データベース・アプリケーション開発の生産性を向上し、コードの信頼性を向上させる。アプリケーションの信頼性が上がれば、結果としてデータベース管理にもよい影響をもたらしてくれるだろう。

マルチインスタンス拡張

 SQL Server 2000からは、サーバやデータベース、テーブル、ストアド・プロシージャなどのオブジェクト・セットをインスタンスとして同時に複数実行できるようになった(SQL Server 7.0では1つのインスタンスしか実行できなかった)。これは簡単にいえば、SQL Serverの複数コピーを同時実行できるようなものだ。

 SQL Server 2000では、同時実行可能なインスタンスが最大16までに制限されていた。これに対し最上位版のSQL Server 2005 Enterprise Editionでは、同時インスタンス数が最大50までに拡大された。

 これは特に、SQL Server 2005を利用したWebホスティング・サービスを行うサービス・プロバイダにとっては朗報である。ASP.NETアプリケーションなどをホストする場合には、必然的にデータベース機能が必要になる。特に日本国内では、WindowsベースのWebホスティング・サービス業者が少ないといわれているが、この制限緩和は、Windows Server 2003+SQL Server 2005ベースのWebホスティング・サービス拡充の追い風となるだろう。

XMLサポート

 前版のSQL Server 2000においてもXMLサポートは追加されていたが、データベース・エンジン自身がネイティブにXMLデータに対応していたわけではない。具体的には、SQL Server 2000にXMLデータを格納する場合でも、データ型はテキスト型またはイメージ型として扱うしかない。XMLドキュメントは、それ自身階層化構造を持つことが可能だが、SQL Serverエンジンのレベルでそれを意識したクエリ機能などは提供されない。XMLデータの複雑な論理階層を踏まえてデータを検索するには、そのためのロジックをストアド・プロシージャやクライアント・コードとしてアプリケーション側で実装しなければならなかった。

 これに対しSQL Server 2005では、XMLデータ型がサポートされ、XMLデータをXMLデータとしてエンジン・レベルで意識して格納し、検索処理などができるようになった。XMLデータの検索では、XQuery言語が利用できる。

HTTPネイティブ・サポート

 既存情報システム資産の有効活用やBI(Business Intelligence)など全社規模の情報分析要求などから、メインフレームとUNIX、Windowsなど、異なるアプリケーションの相互接続が一般化しつつある。この接続インターフェイスとしては、トランスポート層としてWebで広く普及したHTTPベースのSOAPプロトコルを利用し、ファイアウォールを超えたアプリケーション接続が可能なWebサービスが主流となっている。

 外部にWebサービス・インターフェイスを提供するには、外部からのアクセスに対してSOAPプロトコルをホストするためのサーバが必要だ。従来この機能は、IIS(Internet Information Services)などのアプリケーション・サーバが担っていた。

従来のWebサービス・サーバ
SOAPによるWebサービス・インターフェイスを提供するために、従来はIISなどのアプリケーション・サーバが必要だった。

 これに対しSQL Server 2005のデータベース・エンジンは、HTTPをネイティブにサポートしており、HTTP/SOAPの要求を直接受け取り、SQLステートメントやストアド・プロシージャを実行できるようになった。通信相手のWebサービス仕様の情報を交換可能にするWSDL(Web Service Description Language)もサポートしている。

ネイティブHTTPサポートが追加されたSQL Server 2005
SQL Server 2005では、データベース・エンジンがネイティブにHTTPをサポートしており、従来のようにアプリケーション・サーバを介在させなくても、直接SOAPベースのWebサービス要求を受け付け、これを処理できる。
 

 INDEX
  [運用]ITProから見たSQL Server 2005
  第2回 データベース・エンジンの機能強化点
  1.データベース・エンジンの機能強化点(1)
    2.データベース・エンジンの機能強化点(2)
 
更新履歴
【2005/12/27】64bitプロセッサx64対応に関する記述部分について。SQL Serverは、前版のSQL Server 2000 SP4で、WOW64(64bit環境で32bitアプリケーションを実行可能とするエミュレーション・レイヤ)を利用した64bit対応を追加していました。これに対しSQL Server 2005は、x64にネイティブに対応しており、互換レイヤは使用せずに実行可能です。当初の原稿ではこの点があいまいでしたので、誤解を招かぬよう原稿を一部加筆しました。

 運用


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間