DBA 向け SQL Server 2005 概要

このページはアーカイブです。記載されている内容は情報提供のみを目的としており、ページ内のリンクは有効でない可能性がありますが、これらの情報についてマイクロソフトはいかなる責任も負わないものとします。

Eric Brown

2003 年 10 月

要約 : このドキュメントでは、データベース管理、データベースの可用性と拡張性、およびセキュリティの新機能の概要について説明します。

トピック

はじめに
高可用性と高拡張性
すべてのデータベース アプリケーションへの高可用性の拡張
メンテナンス ウインドウの最小化
データベースの開発、展開、および管理 : 革新的なツール セット
SQL Server 2005 の展開
管理およびパフォーマンス チューニング ツール
まとめ
付録

はじめに

Microsoft SQL Server の次期バージョンである SQL Server 2005 は、Windows Server System に対して、接続性、拡張性、信頼性を備えた次世代のエンタープライズ アプリケーション用のデータベース プラットフォームです。 革新性の広さと深さは、多くのお客様からの要望にお応えするものです。 このドキュメントを読むことで、データベース管理者は SQL Server 2005 の新機能を理解できます。 既存機能への多数の機能強化や、まったく新しいセキュリティ モデルを使用することによって、データベース管理の生産性が向上し、管理者のニーズに合致するようになります。

DBA を取り巻く世界は変化しています。 より大容量のデータを擁するより多くのシステムを管理するために、DBA に対する要求が増大する一方で、企業は IT コストをこれまでと同程度に維持するか、あるいはいくぶんか削減しようとしています。 同時に、企業の開発者は企業の要求レベルを実現する信頼性に優れたアプリケーションを開発するために、DBA に対して、データ モデルや最良のデータ アクセス パラダイムの理解の助けに多くの時間を費やすよう要求しています。 このような切迫した状況から、エンタープライズの管理性、拡張性、および可用性に関して、DBA はデータベース技術からさらに多くを引き出す必要があります。 SQL Server 2005 は、次世代の IT インフラストラクチャを構築するために DBA が委ねることができる基盤となります。

SQL Server 2005 の中核となるのは、新しいインフラストラクチャ アプリケーション機能です。 SQL Server Broker は、分散アプリケーション フレームワークです。 SSB は、非同期メッセージ配信のために新しい形式の拡張性および信頼性を提供します。 SQL Server 2005 での新機能ではありませんが、Notification Services、Reporting Services、および SQL Server Compact Edition の機能が大幅に強化されました。

SQL Service Broker

過去 10 年にわたり、電子商取引アプリケーションの普及に伴って、複数のデータベース アプリケーション全体でますます多くのプロセス管理を行う必要がでてきました。 オーダー エントリー システムを構築したり、オンラインで何かを注文したりしたことのある方なら、顧客が書籍を注文するといった事例をよくご存知のはずです。 こうした注文には、在庫、配送、およびクレジット カード システムへのトランザクションのコミットのほか、別の Web アプリケーションを使用した注文確認の送信が必要です。 これらの各プロセスが順に実行されるのを待つのは、拡張性があるとはいえません。 SQL Server 2005 は、非同期メッセージ ルーティングを構築するための拡張性のある新しいアーキテクチャを備えています。

SQL Server Service Broker 技術を使用すると、内部および外部プロセスで通常の Transact-SQL Database Manipulation Language への拡張機能を使用して、保証された非同期メッセージを送受信できます。 メッセージは、送信側と同じデータベース内のキュー、同じ SQL Server インスタンス内の別のデータベース、または同じサーバーまたはリモート サーバー上の SQL Server インスタンスに送信されます。 SQL Service Broker は、優れた非同期メッセージング、トランザクション サポート、および SQL Server リレーショナル エンジンを提供します。

Reporting Services

マイクロソフトは、SQL Server 2005 リリースによって、統合 Business Intelligence プラットフォームの主な新しいコンポーネントを拡張しています。 SQL Server Reporting Services は、あらゆるビジネス環境で適切な情報を適切な人材に容易に提供できるようにすることで、Microsoft Business Intelligence ビジョンを拡充します。

Reporting Services は、従来型 (印刷) およびインタラクティブ (オンライン) レポートを作成、管理、配信するためのサーバー ベースによる総合プラットフォームです。 レポートを作成、配布、管理するために必要なあらゆる機能を直ちに活用できます。 同時に、製品はモジュラ設計を採り入れて広範な API を用意しているので、ソフトウェア開発者、データ プロバイダ、ユーザー企業はレポート機能をレガシー システムまたはサードパーティのアプリケーションに統合できます。

SQL Server 2005 とともに提供される Reporting Services には、次が含まれます。

  • レポート作成、管理、表示のための完全なツールセット。

  • レポートをホストおよび処理するためのエンジン。

  • 幅広い IT 環境へのレポート組み込みまたはソリューション統合のための、拡張可能なアーキテクチャおよびオープン インターフェイス。

Notification Services

Microsoft SQL Server の Notification Services は、通知を生成してユーザーに送信するアプリケーションを開発および展開するためのプラットフォームです。 通知とは、各種デバイスに送信できる、パーソナライズされたタイムリーなメッセージです。

通知には、サブスクライバの意向が反映されます。 サブスクライバはサブスクリプションを入力して、興味のある情報を示します。 たとえば、「ADCP の株価が 70 ドルになったら通知」や「私のチームが作成している戦略文書が更新されたら通知」のように入力します。

通知は、誘因となるイベントが発生するとすぐに生成されてユーザーに送信される場合と、ユーザーが事前に指定したスケジュールで生成されて送信される場合があります。 ユーザーのサブスクリプションでは、通知を生成してユーザーに送信する時期を指定します。

通知はさまざまなデバイスに送信できます。 たとえば、ユーザーの携帯電話、携帯情報端末 (PDA)、Microsoft Windows Messenger、メール アカウントに送信できます。 これらのデバイスはユーザーが携帯することが多いので、通知は優先度の高い情報の送信に最適です。

SQL Server Compact Edition

SQL Server 2000 では、SQL Server Compact Edition が同梱されていました。 これは SQL Server Compact Edition と呼ばれるようになり、新しい SQL Server 「Workbench」を使用して開発および管理できます。DBA は、SQL Workbench から直接 SQL Server Compact Edition をデスクトップに作成することも、直接デバイスに作成することもできます。 また、データベースがモバイル デバイスにあるかデスクトップにあるかにかかわらず、DBA は SQL Workbench から直接 SQL Server Compact Edition データベースのスキーマを操作できます。 さらに、DBA はサブスクリプション データベースを作成し、SQL Workbench を使用して、SQL Server パブリケーション データベースから (デスクトップまたはデバイスにある) SQL Server Compact Edition データベースにデータを移動することができます。 また、DBA はデバイスまたはデスクトップにある SQL Mobile データベースをターゲットとする SQL Workbench を使用してクエリを実行したり、XML プラン表示 (ネイティブ SQL Server のような GUI 形式になる) などの SQL Mobile 新機能を利用したり、クエリ ヒントを使用して SQL Mobile のクエリ オプティマイザを作動しないようにすることができます。 SQL Mobile は DTS に統合されています。 DBA は、Whidbey アプリケーションの DTS オブジェクトを使用することにより、非 SQL データ ソースにアクセスしたり、デスクトップの SQL Mobile データベースに直接データを入れることができます。 また、SQL Server Mobile では新しいマージ レプリケーションのパフォーマンスの向上を直接取り入れることができるので、同時接続された SQL Server Mobile サブスクリプション データベースが単一サーバーで 1000 まで可能になり、拡張性が大幅に向上します。

このように、SQL Server プラットフォームのインフラストラクチャは多くの点で変更されています。 データベース エンジンには、拡張性、信頼性、およびセキュリティのための完成された確かなインフラストラクチャが備わっています。 前述したフレームワークは、フェールオーバー クラスタリング、バックアップとリストア、およびトランザクション ロギングに使用されます。 SQL Server 「Workbench」から行う管理のほか、SQL Server には信頼性と拡張性に関して優れた評価があります。 SQL Server 2005 の可用性については、新たに説明する内容が豊富にあります。

高可用性と高拡張性

SQL Server 2005 は、データベースの可用性と信頼性において大きく前進しました。 ダウンタイムは、計画と非計画の 2 つのカテゴリに分類されます。 非計画ダウンタイムは実際の障害回復であり、特別な計画とインフラストラクチャが必要です。 SQL Server は、フェールオーバー クラスタリングを発展させると同時に、障害回復時に限り、データベースに新規テクノロジを追加しました。 計画されたメンテナンス時にシステムのオンライン状態を保つためにフェールオーバー クラスタリングを使用できる一方で、SQL Server 2005 にはデータベース ミラーリング機能が導入されています。 データベース ミラーリングには、データベースの可用性のための使いやすいオプションが用意されています。 データベース ミラーリングについて説明する前に、フェールオーバー クラスタリングの拡張機能について説明します。

フェールオーバー クラスタリング

SQL Server 2005 のフェールオーバー クラスタリングは、サーバー全体の障害に対する高可用性サポートを提供します。 フェールオーバー クラスタリングでは、冗長ハードウェアを用意し、プライマリ ハードウェアに障害が起きた場合にデータベース サーバーをセカンダリ ハードウェアに移す自動メカニズムを使用することにより、オペレーティング システムと SQL Server が障害からの保護のために共に機能します。 フェールオーバー クラスタリングは、Windows 2003 のバージョンに応じて、8 ノードまでをサポートします。

SQL Server は、フェールオーバー クラスタリング機能を Analysis Services、Notification Services、および SQL Server レプリケーションに拡張しました。 SQL Server 2000 では、SQL Server Agent とその他のジョブ管理機能および処理機能にフェールオーバー クラスタリングを使用できませんでした。 SQL Server 2005 のテクノロジは、クラスタリングに配慮しています。 つまり、SQL Server のフェールオーバー クラスタリングは、より完成度の高いサーバー レベルの冗長ソリューションとなっています。

すべてのデータベース アプリケーションへの高可用性の拡張

SQL Server 2005 は、コピー オン ライト テクノロジによって、データの可用性の壁を越えて新たな方向へと拡張します。 SQL Server 2005 には、データベース レベルの可用性を実現する新しいハイパフォーマンス トランザクション トランスミッション テクノロジである、データベース ミラーリングが導入されています。 トランザクションは、ログが書き込まれるたびに別のサーバーに送られます。 データベース インスタンスへの記録されたすべての変更内容は、すぐに別の場所にコピーすることができます。

データベース ミラーリング

Microsoft SQL Server 2005 では、データベース管理者はデータベース ミラーリング オプションを使用できるため、ログ配布機能が大幅に向上しました。

データベース ミラーリングを使用すると、ソース サーバーから単一の宛先サーバーにトランザクション ログを絶え間なく送ることができます。 プライマリ システムに障害が発生した場合に、アプリケーションは直ちにセカンダリ サーバー上のデータベースに再接続でき、リカバリが終わるまで待たずに済みます。 セカンダリ インスタンスは 5 秒以内にプライマリ サーバーの障害を検出し、障害の検出から 2 秒以内にデータベース接続を受け入れます。 フェールオーバー クラスタリングとは異なり、ミラー サーバーは同期化されているので、完全にキャッシュされており、ワークロードをすぐに受け入れることができます。

データベース ミラー システムには、特定のアーキテクチャ ロールを行う 3 つの SQL Server が必要です。 Principal サーバーは、アプリケーションが接続され、トランザクションが処理されるサーバーです。 Mirror は、トランザクション ログ レコードのターゲットであり、これらのレコードは同期または非同期に送ることができます。 Mirror は、データへの直接読み取りアクセスを許可されません。 トランザクション ログ レコードが送られると、レコードは Mirror 上で連続して再生されるので、通常、Mirror は 1 回のログ書き込みで書き込まれたログの再生時間分だけ遅れた状態になります。 これにより、その時点でのデータが複製されます。

Witness は、アーキテクチャ内の決定を担います。 Witness は、「Principal」または「Mirror」サーバーを決定する際に決定「票」を投じます。 サーバーを Principal と指定し、それに伴いすべてのトランザクションのターゲットを指定するには、アーキテクチャ内で認証される 2 つのサーバーが必要です。 クライアント アプリケーションから見ると、あるサーバーから別のサーバーへのフェールオーバーは、自動的にほぼ即時に行われます。 Witness が必要となるのは、自動フェールオーバーが必要なインスタンスの場合のみです。

データベース ミラーリングで最も重要なことは、Principal から Mirror へのフェールオーバー時に待機時間を非常に短くすることのほかに、両方向で変更内容を同期する機能です。 Principal がオフラインになり、アプリケーションが Mirror にフェールオーバーすると、Mirror はアーキテクチャ内の Principal サーバーになります。 障害の起きたサーバーがオンラインに戻ると、そのサーバーは Mirror に指定され、Principal からのトランザクション ログ レコードがそのサーバーに送られて、その時点のデータベースの状態に同期されます。

データベース ミラーリングは標準サーバー ハードウェア上で機能し、特別なストレージやコントローラは必要ありません。

データベース ミラーリングは絶え間ないサポートを提供する一方で、データベースの「スナップショット」を、テストおよび開発データベースとして、またはレポーティング データベースとして、コールド スタンバイのために起動する必要があるケースが多くあります。 コピー オン ライト テクノロジによって、この機能はデータベース ビューの形式で提供されます。

データベース ビュー

SQL Server 2005 には、管理者がデータベースの安定性のある読み取り専用ビューを生成して使用するための機能が導入されています。 データベース ビューでは、データベース要件やストレージ要件の完全なコピーを作成する負担なく、この機能を使用できます。 プライマリ データベースはビューとは分離されているので、ビューが変更されると、ビューは元のページのコピーを取得します。 ビューでは、データベース ビューからプライマリ データベースに単にページを再送することによって、データベースへの突発的な変更を復旧できます。

レプリケーション

レプリケーションは、複数のデータベースにデータを配布することにより、データの可用性を高めるよう設計されています。 可用性を高めるため、アプリケーションが SQL 読み取りワークロードを複数のデータベースに拡大できるようにしたり、時折接続されるモバイル ユーザー データベースとオフライン データを同期したりします。 SQL Server 2005 では、これらの 2 つの領域における可用性のオプションが強化されています。 新しい SQL Server 2005 ピアツーピア モデルでは、新しいトポロジを使用できます。 このトポロジは、分散データに対するより高い「読み取り」ワークロードを可能にすると同時に冗長分散データベースのフォールト トレランスも提供することにより、データベースの可用性を高めます。 http:// と https:// を使用してレプリケーションを行う新しいオプションによって、インターネットを介した同期が可能になり、モバイルを使用する場合のデータの可用性が高まります。

メンテナンス ウインドウの最小化

データベース管理者が最も頭を悩ませることの 1 つは、SQL Server システム パラメータの変更に伴うデータベース サーバーの再始動です。 SQL Server 2005 では、実質的に再始動が必要なパラメータの数が減りました。 CPU および RAM メモリに対するデータベース サーバーの親和性は、再始動せずに変更できるようになりました。 開発サイクルの一環として、再始動を必要としていたすべての機能は、再始動の必要がなくなりました。 計画または非計画のダウンタイムが発生したときに完全な復旧にかかる時間は、復元を速めてデータベース機能を「即時に」提供することによって短縮されました。 また、データベースをオフラインにせずにインデックスおよびデータベース オブジェクトを管理する機能は、きわめて重要です。 SQL Server では、オンラインでインデックスを作成および管理することができます。

オンライン インデックス操作

オンラインでインデックスを作成、再構築、または削除する機能は、前のバージョンのインデックス機能を強化する新機能です。 オンライン インデックス オプションにより、インデックス DDL (データ定義言語) を実行中に、基礎となるテーブルまたはクラスタ化されたインデックス データおよび関連インデックスを同時に修正 (更新、削除、および挿入) できます。 たとえば、クラスタ化されたインデックスを再構築するプロセスの間に、引き続き基礎となるデータを更新し、そのデータに対してクエリを実行できます。 以前のバージョンの SQL Server では、インデックス DDL 操作 (再構築など) によって元になるデータや関連するインデックスに対する排他的ロックが保持され、インデックス操作が完了するまでは変更やクエリを行うことができませんでした。 オンライン インデックス操作がサポートされたことにより、管理者は、テーブルやその他の既存のインデックスへのアクセスを中断せずにインデックスを追加できます。 また、サーバー ワークロードでは、インデックス操作で並行処理を行うことができます。

オンライン復元

SQL Server 2005 を使用すると、復元中のデータベースの一部を使用しながら、復元作業を実行できるようになります。 オンライン復元では、復元中のデータのみが使用不可になるので、SQL Server の可用性が向上します。 データベース内の復元中以外のデータは、オンライン状態のままなので使用できます。 以前のバージョンの SQL Server では、復元を実行する前にデータベースをオフラインにする必要がありました。

オンライン復元を使用する際には、2 つのオプションのいずれかを選択できます。

  • データベース ファイル全体の、ファイル レベルのオンライン復元

SQL Server 2005 では、ファイル グループのオンライン復元もサポートされます。 これは、ファイル グループはファイルの集合と同じであるためです。

高速復元

SQL Server 2005 は、新しい高速復元オプションによって SQL Server データベースの可用性を強化しています。 ユーザーは、トランザクション ログがロールフォワードされた後で、復元中のデータベースに再接続できます。 以前のバージョンの SQL Server では、ユーザーがデータベース内の影響を受けた部分にアクセスする必要がない場合でも、不完全なトランザクションがロールバックされるまで待つ必要がありました。

復元の元に戻すフェーズでは、読み取り/書き込み操作を並行して続行できます。 ただし、元に戻すフェーズに対してロックされたデータにアクセスする操作の場合は、元に戻す操作がそのデータのロックを解除するまで、データベース内で通常のブロッキングを受けます。

ミラーリングによるバックアップ

以前のバージョンの SQL Server では、バックアップの単一コピーしかサポートされませんでした。 バックアップ メディアが損傷を受けると、ロールフォワードは長い時間がかかるか失敗していました。 SQL Server 2005 では、バックアップ メディアをミラー化できます。 たとえば、管理者は 4 つのテープ デバイスをセットアップして、メディア ファミリごとにミラーを持つ 2 つのメディア ファミリをバックアップできます。 各ミラー内の対応するボリュームには同じ内容が含まれ、復元時に交換が可能です。 管理者は、最大 4 つのミラー化バックアップ セットを実装できます。

DBCC チェックサム

多くの DBA は、現在の DBCC 機能を使用して SQL Server の状態を調べています。 DBCC は、SQL Server の新機能をカバーするよう機能強化されました。 また、エラー メッセージを容易に読み取れるようにする情報が追加されました。 新しい DBCC CHECKSUM ステートメントでは、各ページのチェックサムを行うことにより、ページ レベルで追加のデータ検証を実行できます。 さらに、DBCC は、分割の正確性、ベース テーブルに対して具体化されたビューの正確性、および登録されたアセンブリにエラーがないかどうかについて報告します。

データベースの開発、展開、および管理 : 革新的なツール セット

SQL Server の多くの機能が進化を遂げている一方で、革新的に変化した部分の 1 つがツール セットです。 SQL Server "Workbench" は、ユーザーが SQL Server、Analysis Services、および SQL Server Compact Edition データベースに接続して作業することが可能な、最初のデータベース管理スイートです。 さらに、SQL Server Workbench では SQL Server 7.0 までの旧バージョンがサポートされます。 この改良点により、中心となる場所で SQL Server データベースを調整およびアップグレードすることができます。 SQL Server ツール セットには、本格的な Transact-SQL 開発者から初心者までが、データベース タスクを実行する上で必要とする柔軟性と機能が備わっています。

SQL Server 2005 ツール セットは、開発、展開、および管理の 3 つの主要な使用シナリオに重点を置いています。 これらのシナリオには、それぞれ固有のツールおよび機能があります。 まず、開発用の新規ツールから説明します。

SQL Server Workbench クエ エディタ

SQL Server 2005 では、クエリ アナライザがクエリ エディタに替わりました。 クエリ エディタは SQL Workbench のコンポーネントであり、バッチ スクリプト、Transact-SQL ステートメント、クエリ、バッチ、およびスクリプトを対話的に設計およびテストするための主要ツールです。 クエリ エディタを使用すると、Transact-SQL、マルチディメンション式 (MDX)、または XQuery で新規スクリプトを作成できます。 また、ファイルから作成されたスクリプトや、SQL Server Workbench ダイアログまたは Object Explorer から自動的に生成されたスクリプトを編集することもできます。

クエリ エディタは、次のものを提供します。

  • ステートメントのオートコンプリート (特定のキーワードに続く可能性のあるオブジェクトのリスト)。

  • ストアド プロシージャおよびユーザー定義関数に従うパラメータのリストを提供するための、ストアド プロシージャ用パラメータ ティッピング。

  • 複雑なステートメントの読み取り易さを向上するための、Transact-SQL および MDX 構文のカラーコーディング。

  • SQL Server オブジェクト作成用の Transact-SQL ステートメントの開発を速めるテンプレート。

  • SQLCMD キーワードを使用するクエリ実行およびクエリ解析の編集。

  • グリッドまたはフリーフォームのテキスト ウインドウで表される結果。

  • プラン表示情報のグラフィカル ダイアグラム。 Transact-SQL グラフィック デッドロック表示ステートメントの実行プランに組み込まれる論理ステップを表します。

XQuery デザイナ

Microsoft SQL Server 2005 には、XML XQuery Language (XQuery) のサポートが導入され、XML データ型列に保管されている XML データをクエリおよび提示するための柔軟なメカニズムを提供します。 XML XQuery Language は、XML Schema や XPath などの他の XML 言語を大いに活用する、新しい強力なクエリ言語です。

XML Query を構築する開発者を支援するため、Microsoft SQL Server Workbench には新しい XQuery デザイナが導入されました。 XQuery デザイナを使用すると、XML データ列のツリー表記から XML ノードをドラッグ アンド ドロップするだけで XML Query を構築できます。 XML Query は、マウスのシングル クリックで実行できます。 XML Query テキスト エディタを使用すると、より複雑な XQuery 構造を追加できます。 XQuery デザイナでは、SELECT ステートメント内で後で使用するため、およびレポートのために XML Query を構築することができます。 SQL Workbench には、関連する XML Query を一緒に保管するためのプロジェクト システムがあります。 XQuery デザイナを初めて使用する際には、ヘルプ メニューから XQuery Tutorial を起動して、作業面全体についての説明をお読みください。

SQL Server 2005 の展開

展開 / 構成用のツール

多くのユーザーは、データベース アプリケーション展開の構成およびセットアップの段階で、SQL Server を自在に制御する必要があります。 一部の基本パラメータおよびファイルの位置を変更する機能によって、アプリケーションのセキュリティとリソース管理に高い柔軟性がもたらされます。 以下に、セットアップおよび構成への変更の一部について説明します。

Windows インストーラ

Windows インストーラを使用して SQL Server 2005 をセットアップすると、SQL Server 機能のインストールが単一の機能ツリーに完全に統合されます。 最小および標準のインストール モードは、実装されなくなりました。 代わりに、セットアップでは、選択されたデフォルト オプションを持つ機能ツリーが表示されます。 管理者は、機能ツリー上の項目を選択したり消去したりし、インストール パスを指定することによって、インストールをカスタマイズできます。 また、このバージョンの Windows インストーラでは、リモート セットアップおよび複数インスタンス構成がサポートされます。

Consistency Checker

SQL Server 2005 のセットアップには Setup Consistency Checker (SCC) という新機能があり、セットアップの開始前にターゲット コンピュータの検査と検証が行われます。 SCC は WMI テクノロジを使用することにより、ローカル、リモート、およびクラスタ化ターゲット コンピュータ上のサポートされない構成が原因でセットアップ障害が発生するのを回避します。 セットアップによって、障害のある検査項目が修正できる場合は、ユーザーは必要な操作を行うようセットアップに指示できます。 それ以外の場合は、SCC はセットアップを続行する前に、各ブロッキング問題への解決策をユーザーに示します。

障害レポート

SQL Server のセットアップには、改善された障害レポート機能と拡張可能な警告が含まれます。 インストール時にエラーが発生すると、セットアップは障害終了コードの判別、記述的なエラー メッセージの表示、解決のための修正操作、およびユーザーへのセットアップ ログの提示を行います。 また、セットアップは各インストールからのログを保管します。

SQL Server コンピュータ マネージャ

SQL Server コンピュータ マネージャは、クライアント ネットワーク ユーティリティ、サーバー ネットワーク ユーティリティ、および SQL サービス マネージャに替わるものです。 SQL Server 2005 コンピュータ マネージャは、Analysis Services、Reporting Services、以前のバージョンの SQL Server のほか、フルテキスト検索や MS Search とも連動することができます。 ユーザーは、コンピュータ マネージャを使用して、クライアントおよびサーバー ネットワーク アクセス用のネットワーク プロトコルを定義できます。 コンピュータ マネージャには WMI を介してアクセスでき、拡張が可能です。

管理およびパフォーマンス チューニング ツール

SQL Server Object Explorer

新規 SQL Server Workbench では、以前のバージョンの Enterprise Manager と Analysis Services Manager の機能を統合しています。 SQL Server Object Explorer には、Enterprise Manager と同じ機能がすべて備わっています。 機能強化されたのは、データベース オブジェクト探索時のより高い拡張性と、OLTP および OLAP データベースのスクリプトの統合です。 また、SQL Server 7 と 2000、2005 の Analysis Services、およびSQL Server Compact Edition のサポートもあります。 Object Explorer には、セキュリティ、SQL エージェント、SQL Mail、およびその他の SQL Server サブ システム (Notification Services および Reporting Services 内) を含む Enterprise Manager での使用が予想されるすべての管理機能が備わっています。

SQL Server プロファイラと Database Tuning Advisor

Microsoft Research は、SQL Server 開発チームと協力して、Database Tuning Advisor という新しいインデックス チューニング ツールを生み出しました。 DTA は、データベース構造へのインデックスおよびテーブル分割の変更を示すことができます。 また、SQL Server プロファイラは大幅に改良され、より高いパフォーマンスとより深い可視性をサーバーにもたらしました。 SQL Server プロファイラへの大きな変更点は、次のとおりです。

  • Analysis Services のプロファイル。 プロファイラは、Analysis Services で発生したイベントのキャプチャをサポートするようになりました。

  • トレースされたプラン表示を XML として保管する。 プラン表示結果は XML 形式で保管されるので、後で SQL Server Workbench のグラフィカル プラン表示ディスプレイにロードできます。 これには、グラフィカル デッドロック ステートメントが含まれます。

  • トレース結果を XML として保管する。 トレース結果は、ANSI、UNICODE、および OEM の標準保管形式のほかに、XML 形式で保管できます。

  • 集計ビュー。 ユーザーは、集計オプションを選択したり、集計用のキーを選択することができます。 これにより、集計が実行された列と集計値を生む行数を示すビューを表示することができます。

  • プロファイラは、SQL イベントまたは Analysis Services イベントと Performance Monitor Counters を関連付けることができます。 管理者は事前定義された一連の Performance Monitor Counters から選択し、それらを指定された時間間隔で保管すると同時に、SQL トレースまたは Analysis Services トレースを収集することができます。

プラン表示の機能強化

Microsoft SQL Server 2005 ではプラン表示とデッドロック トレースが機能強化されたため、管理者はデータベース サーバーをチューニングすることができます。

機能強化された点は、次のとおりです。

  • トレース イベントによって収集されたデッドロックのグラフィカル表示。 グラフィカル表示ではデッドロック サイクルまたはチェーンが表示されるので、以前のバージョンの SQL Server で使用されていたトレース フラグから情報を収集するよりも、容易にかつ直観的にデッドロックを分析できます。

  • プラン表示結果は XML 形式で保管されるので、後でクエリ エディタでのグラフィカル表示用にロードできます。

  • プラン表示結果を XML 形式で保管する機能によって、パフォーマンス チューニングに多数の利点がもたらされます。 プラン表示は、保管したり、別の場所に転送したり、元になるデータベースを持たずに表示することができます。

管理者はエクスポートされたプラン表示を使用して、社内またはリモートの異なるデータベース間の不一致を識別するのに役立てることができます。

また、管理者はサーバー上のベースライン データを収集し、データが書き加えられたりパフォーマンス特性が変わったときに、データとサーバーを比較することができます。

SQLCMD

SQLCMD は、SQL Server 2005 と共に動作する新しいコマンドライン ユーティリティです。

これは、OSQL ユーティリティに替わるものです。 SQLCMD ユーティリティを使用すると、コマンド プロンプトで Transact-SQL ステートメント、システム プロシージャ、およびスクリプト ファイルを入力できます。

他のユーティリティが従来の ODBC または DB-Library API を使用して通信するのに対して、SQLCMD は OLE DB API を使用します。 SQLCMD では、OSQL または ISQL の機能がサポートされるだけではなく、豊富なコマンド セットが取り入れられ、Microsoft Visual Basic for Applications (VBA) スクリプトなどのアプリケーション スクリプトでの操作性が向上します。

管理者専用の接続

SQL Server 2005 には、サーバーがハングしていたりその他の理由で使用不能の場合でも、稼動中のサーバーにアクセスするための管理者専用接続が導入されています。 これにより、管理者はサーバー上の問題をトラブルシューティングするために、診断関数や Transact-SQL ステートメントを実行できます。 接続は sysadmin ロールのメンバーによってアクティブ化され、ローカルまたはリモート マシンの SQLCMD コマンドラインからしか使用できません。

以前のバージョンの SQL Server では、SQL Server 接続に応答しないサーバーに接続することはできませんでした。 専用管理者接続を使用するには、管理者は -A スイッチを使用する SQLCMD ツールをコマンド プロンプトで実行して、専用接続を指定します。 この接続から、DBA は問題を診断して修正することができます。

SQL Management Objects

SQL Management Objects (SMO) は、一連の新しいプログラミング オブジェクトであり、SQL Server データベースとレプリケーション管理の機能を提供します。 SQL SMO は .NET アセンブリとして実装され、CLR を利用します。 SMO を使用すると、繰り返したり共通で実行されたりする SQL Server 管理タスクを自動化できます。 これらのタスクには、構成設定値をプログラムで検索する、新規データベースを作成する、Transact-SQL スクリプトを適用する、SQL Server エージェント ジョブを作成する、バックアップをスケジューリングする、などがあります。

SMO オブジェクト モデルは、以前のバージョンの SQL Server に組み込まれていた SQL Server 分散管理オブジェクト (DMO) を拡張し、これに替わるものです (DMO は 2005 に同梱されますが、新機能は提供しません)。 SMO には、.NET オブジェクト モデル、部分インスタンス化、キャプチャ モードの実行、代理実行、スペース内のオブジェクト、.NET Framework との統合など、DMO の改善点が多数含まれます。 SMO の使用例を以下に示します。

  • ある ISP が、共有データベース環境内のクライアントに、SQL Server 管理の代理を提供する必要があるとします。 ISP は、Web インターフェイスを提供し、実行可能なタスクのタイプを制限することを希望します。 ISP の開発チームは、SMO オブジェクト モデルを使用して ASP.NET アプリケーションを開発し、単純な管理インターフェイスを構築した上で、それを ISP のカスタマに提供します。

  • あるデータベース管理者が、企業の SQL Server データベースの新規ユーザーをヘルプ デスクに追加するなどの基本的な管理タスクを委任したいとします。 IT 開発者は SMO オブジェクト モデルを使用して単純な Web インターフェイスを作成し、それを企業イントラネットの安全な領域に展開します。

SQL Server エージェント

Microsoft SQL Server 2000 では、SQL Server エージェント ジョブはそのジョブを作成したアカウントの元で実行されます。 プロキシ アカウントを指定して、CmdExec および ActiveX ジョブを実行することができます。

SQL Server 2005 では、SQL Server エージェントのセキュリティが次のように変更されました。

  • エージェント ユーザー ロールの作成。 明示的に追加されたユーザーのみが、SQL Server エージェント ジョブを追加/編集および実行できます。

  • システム管理者が、1 つ以上のプロキシ アカウントを作成し、他の SQL Server サブシステムのプロキシ (DTS を含む) を組み込むことができます。

  • プロキシ アカウントを使用するユーザーまたはグループ (SQL グループ) を割り当てることができます。

すべての SQL Server 2005 管理操作は、Transact-SQL または SQL Management Objects (SMO) を使用して、SQL Server Workbench から SQL Server エージェントによって実行されるようスケジュールを設定することができます。 SQL Server 2005 には、SQL Server エージェント用に新しいオブジェクトとカウンタがあり、System Monitor でそれらを使用して SQL Server エージェントの利用状況をモニタできます。 これらの新規カウンタには、SQL Server エージェントの利用状況のいくつかの点を監視する機能が組み込まれています。 たとえば、有効なジョブ、有効な警告、有効なスケジュール、アクティブなジョブ、アクティブな警告、ジョブ成功率などです。 また、カウンタには、SQL Server エージェント パフォーマンス カウンタ状況によって起動される警告を構成する機能があります。

Transact-SQL の強化

T-SQL 言語の機能強化によって、カスタマからの要求および ANSI-99 SQL 規格への準拠が強化されました。 このセクションでは、T-SQL への変更点のうち、最も主要なものだけを取り上げます。 T-SQL の改善点の多くは、クエリ内での表現力の向上に向けられています。

新しい共通テーブル式機能では、派生テーブルが現在使用されている場合にクエリ バッチを生成することができます。 共通テーブル式 (CTE) とは一時的に命名される結果セットであり、定義ステートメントによって参照される場合があります。 CTE は単純な形式なので、派生テーブルの改良バージョンと見なすことができます。 派生テーブルおよびビューを参照するのと同様に、CTE を参照するときはクエリの FROM 句を使用します。 CTE は、正規化データの再構成に柔軟性と表現力をもたらします。 T-SQL への最大の追加機能の 1 つは再帰クエリです。 これにより、リレーショナル データの操作性が向上します。

再帰クエリは新しいクエリ タイプであり、材料表や階層的な結果セットの生成をもたらします。 このクエリには、新しい PIVOT および UNPIVOT 演算子があります。 これらの演算子は、入力テーブル値式の操作を実行し、出力テーブルを結果セットとして生成します。 PIVOT 演算子は行を列に順に当てはめ、集計やその他の算術計算を実行します。 PIVOT 演算子は指定されたピボット列に基づいて入力テーブル式を広げるので、生成される出力テーブルは、ピボット列の各固有値に対応する列を持ちます。 UNPIVOT 演算子は PIVOT 演算子と逆の操作を実行します。 つまり、列を行に順に当てはめます。 UNPIVOT 演算子は、ピボット列に基づいて入力テーブル式を狭めます。 再帰クエリによって、データを再形成することができます。 T-SQL の機能強化のいくつかは、演算子の適用に基づいて結果を公式化する機能に焦点を当てています。

新しい APPLY リレーショナル演算子を使用すると、外部テーブル式の行ごとに 1 回ずつ、指定されたテーブル値関数を呼び出すことができます。 APPLY は、JOIN リレーショナル演算子と同様にクエリの FROM 句に指定します。 SQL Server 2005 で APPLY 演算子を使用すると、相関するサブクエリ内のテーブル値関数を参照できます。 APPLY は、CROSS APPLY と OUTER APPLY の 2 つの形式があります。 CROSS APPLY は、外部テーブル式の行ごとにテーブル値関数を呼び出します。 ユーザーは、外部テーブルの列をテーブル値関数への引数として参照できます。 CROSS APPLY は、テーブル値関数の個々の呼び出しによって戻されるすべての結果から統一された結果セットを戻します。 テーブル値関数から特定の外部行の空のセットが戻される場合、その外部行は結果には戻されません。

OUTER APPLY は CROSS APPLY と非常に似ていて、異なるのは、テーブル値関数から空のセットが戻される外部テーブルの行も戻す点です。 データを再形成したり操作する機能は、ここでは説明しきれないほど広範です。 詳細は、SQL Server Books Online を参照してください。

SQL Server 2005 は、エラー処理機能を追加することによって、クエリのトランザクション機能を改善しています。 SQL Server 2005 には、単純ながら非常に強力な新しい例外処理メカニズムが TRY/CATCH T-SQL 構造の形式で導入されています。 バッチを終了するために使用されていたトランザクション中止エラーは、キャッチおよび処理できるようになりました。 以下に例を示します。

SET XACT_ABORT ON 
BEGIN TRY 
  BEGIN TRAN 
    INSERT INTO T1 VALUES(1) 
    /* 別の動作を実行 */ 
    PRINT 'After INSERT.' 
  COMMIT 
END TRY 
BEGIN CATCH TRAN_ABORT 
  ROLLBACK 
  /* 修正措置を実行 */ 
  PRINT 'INSERT failed.' 
END CATCH

また、セキュリティ、レプリケーション、Notification Services、XML、およびすべての .NET フレームワーク機能用の新しい言語構造が加わりました。 すべての新機能の詳細については、SQL Server Books Online を参照してください。

セキュリティの強化

SQL Server 2005 は、データベース プラットフォームのセキュリティ モデルを大幅に機能強化し、開発者と管理者に同様に管理オプションとセキュリティ オプションを提供します。 SQL ログイン パスワードのポリシーの強化 (認証スペース) から、さまざまなスコープでの権限の指定に関してさらなる精密さの提供 (許可スペース)、所有者とスキーマの分離の許可 (セキュリティ管理スペース) まで、広範囲にわたる多数の機能に対して、かなりの改善が行われました。

さらに、「表面積の削減」や「最小特権の原則」などの中核となるセキュリティ原理と、「セキュアな既定設定と設計」などの安全の原則との兼ね合いで、製品の最終バージョンには製品全体に及ぶ変更も用意されています。

2 つの特別な拡張性機能

超大規模データベースのシナリオに関して、言及する価値のある 2 つの拡張性機能が存在します。 1 つ目は Snapshot Isolation Level であり、これによってユーザーは移行的に整合性のあるデータベースのビューを使用して、最後にコミットされた行にアクセスできます。 この新しい分離レベルには、次の利点があります。

  • 読み取り専用アプリケーションのデータ可用性の向上。

  • OLTP 環境における非ブロッキング読み取り操作の許可。

  • 書き込みトランザクションに対する自動強制競合検出。

  • Oracle から SQL Server へのアプリケーションの移行の単純化。

たとえば、ロックは、同じデータを同時に読み取りおよび書き込みする複数のアプリケーション間にブロックを発生させます。 あるトランザクションが行を変更すると、書き込みがコミットされるまで、別のトランザクションはその行を読み取ることはできません。 SI を使用すると、読み取り側はその行の直前にコミットされた値にアクセスできます。 2 つ目の特別な拡張性機能は、テーブル パーティショニングです。

テーブル、データベース、およびサーバーでのパーティショニングの概念は、データベースの世界では目新しくはありませんが、SQL Server 2005 には、データベース内の複数のファイルグループにわたるテーブルのパーティショニング用に新しいインフラストラクチャ機能が備わっています。 行方向パーティショニングを使用すると、パーティショニング体系に基づいてテーブルをより小さいグループに分割できます。 テーブル パーティショニングは、何百ギガバイトからテラバイトより大きなものまで、非常に大容量のデータベースを対象に設計されています。 超大規模データベース (VLDB) クエリ パフォーマンスは、パーティショニングによって向上します。 さまざまなパーティショニング列値を分割することにより、データのサブセットの管理および他のテーブルへの再割り当てを迅速かつ効率的に実行できます。 パーティショニングについての詳細は、SQL Server Books Online を参照してください。

まとめ

SQL Server 2005 は、企業やデータベース管理者のための技術や機能を提供します。 データベース管理者に効果をもたらす新機能および拡張機能は多数あります。 このドキュメントで言及したのは、そのほんの一部にすぎません。 SQL Server 2005 は、これまでの SQL Server リリースの中で最もすばらしいものであることが明らかになるでしょう。 リリースをお待ちください。

付録

新しいデータ型

  • XML データ型 - Extensible Markup Language (XML) データ型。 このデータ型を使用すると、SQL Server データベースに XML フラグメントまたは XML ドキュメントを保管できます。 xml データ型のインスタンスは、テーブル内の列、関数またはストアド プロシージャ引数、関数またはストアド プロシージャ内の変数に使用できます。 また、XML インスタンス データの検証制約および型情報を提供する関連 XML スキーマを指定することによって、xml データ型を特殊化することができます。

    xml データ型インスタンスでの操作は、組み込み型 XML クエリ メソッドを使用して実行されます。 これらのメソッドは、XML データに適したクエリおよびデータ操作ステートメントを受け入れます。 ユーザーは、xml データ型変数または列に保管された XML に対してクエリ (XQuery) を指定し、XML インスタンスに更新 (挿入/更新/削除) を適用できます。 また、XSD を使用して XML 列のインデックスを作成し、クエリ パフォーマンスを改善することもできます。

  • UtcDateTime は、datetime データ型で、時間ゾーンを意識します。 UtcDateTime は、グローバルに運用されているソース トランザクション データベースに使用します。

  • Date は、datetime の日付部分です。 西暦 0001 年 1 月 1 日から 9999 年 12 月 31 日までの日付を 1 日の精度で正しく格納します。 Time は、datetime の時間部分です。 100 ナノ秒の精度で 0:00:00 から 23:59:59.9999999 までを格納します。

  • Varchar(max)、nvarchar(max)、varbinary(max) は、最大 2 GB のデータを保持して、text 型、ntext 型、image 型 の代わりとして役立ちます。

著作権および免責条項

本書は最終製品に先駆けた先行ドキュメントであり、その内容は本書に記載された製品のリリース前に大幅に変更されることがあります。

本書に記載された情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。 Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載した情報に対していかなる責務を負うものではなく、発行日以降における情報の信憑性については保証できません。

本書は情報提供のみを目的としています。 Microsoft は、明示的、暗示的、または法的に本書にいかなる保証も与えるものではありません。

すべての当該著作権法を遵守することはユーザーの責務です。 Microsoftの書面による明示的な許可なく、本書の一部または全部について、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段(電子的、機械的、複写、レコーディング、その他)、および目的を問わず、禁じられています。これらは著作権保護された権利を制限するものではありません。

Microsoft は、本書の内容を保護する特許 (申請中のものも含む)、商標、著作権、またはその他の知的所有権を保有している場合があります。 Microsoft から書面による明示的な使用許諾契約書が供給される場合を除き、本書の提供はこれらの特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。

特に断りのない限り、本書に例示した会社、組織、製品、ドメイン名、電子メール アドレス、ロゴ、人物、場所、およびイベントは架空のもので、実在の会社、組織、製品、ドメイン名、電子メール アドレス、ロゴ、人物、場所、あるいはイベントとは一切無関係です。

© 2003 Microsoft Corporation. All rights reserved.

Microsoft、Visual Basic、Visual Studio、および Windows は米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。

その他、記載されている会社名および製品名は、各社の商標または登録商標です。