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

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

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

パーティショニング

 データウェアハウスなどの大規模なデータベース・システムの性能を向上し、メンテンナンス性を向上させるため、SQL Server 2005では、パーティショニング機能が強化されている(パーティショニング機能がサポートされるのはEnterprise Editionのみ)。巨大なテーブルを分割し、同一コンピュータ上の異なるハードディスクに分割して配置したり、異なるコンピュータに分散して配置したりすることで、並行処理性能を向上できる。これにより、SQL Server 2005のスケーラビリティが向上し、より大規模なシステムへの適用可能性が増す。

 例えば、行方向のパーティション分割では、次のように列はそのまま、適当な行データでテーブルを複数に分割する。

行方向のパーティション分割
行方向のパーティション分割では、1つのテーブルを複数のテーブルに分割する。例えば、1年分のデータを月別に分割するなど。

 例えば、年間の販売データを月別に分割するなどが考えられる。この場合、月次のデータ集計は、小さな月単位のテーブルで処理が可能になるとともに、この月次処理を、ほかのパーティションに対するクエリ処理から分離できるようになる。また、バックアップなどの管理作業もパーティション単位に実行できるので、管理性も向上する。

 テーブルが物理的にどのように分割されているかということは、アプリケーションからは見えない。アプリケーションは、これらを意識することなく、通常どおりにデータベースにアクセスできる。

 SQL Server 2005では、必要なら列方向のパーティション分割も可能である。

列方向のパーティション分割
列方向のパーティション分割では、行はそのままに列を分割する。

 列方向のパーティション分割では、行はそのまま、列を複数のパーティションに分割すする。この場合もクエリの性能を上げたり、バックアップをパーティション単位に実施したりできる。しかし論理的な行を取得するときには、複数のパーティションから行データを取得して結合しなければならず、オーバーヘッドが大きい。列方向のパーティション分割は、慎重に設計する必要がある。

複数のアクティブな結果セット

 従来のSQL Server 2000では、1つの接続では1つのアクティブな結果セットしか返すことができなかった。これに対しSQL Server 2005では、単一の接続で複数のアクティブな結果セット(MARS:Multiple Active Results Sets)を返せるようになった。これによりアプリケーションは、単一の接続で複数のバッチや要求を同時実行可能になった。

データの一括インポート

 一括インポートとは外部のデータ・ファイルから、データをSQL Serverに一括してロードする機能である。従来のSQL Server 2000では、一括インポート用ツールであるbcpユーティリティを使用し、データを独自のBCP形式にしてから一括インポートする必要があった。これに対してSQL Server 2005の一括インポート機能では、XMLフォーマットに対応し、XML形式のデータを一括インポートできるようになった(従来のBCP形式のインポートも可能)。汎用的なXMLデータをインポート可能になったことから、異なるデータベース・システムからSQL Server 2005へのデータ移行がさらに容易になった。またXMLはテキスト形式なので、各種スクリプトなどを利用して、一括インポートするデータを加工することも容易である。

フルテキスト検索カタログのバックアップ&復元

 従来のSQL Server 2000では、データベースのフルテキスト検索用のカタログだけを単独でバックアップしたり、復元したりするための標準的な機能は提供されていなかったが、SQL Server 2005ではこれが可能になった。データベースとともにカタログをバックアップすることも、カタログだけを独立してバックアップし、復元することも可能である。フルテキスト検索カタログの作成は負荷の高い処理なので、カタログをバックアップしておけば、万一障害が発生してデータを復元する場合でも、カタログを完全に再生成しなくても、素早くサービスを復旧できるようになる。カタログのバックアップ後に加えられた修正については、復元後に変更ログをロール・フォワードすることで更新し、カタログを最新の状態にできる。

セキュリティ機能の強化

 ネットワークを悪用した不正攻撃は、当初の愉快犯的なものから、金銭目的の犯罪が増加してきた。データベースは、その名のとおり、情報を集約する場所であり、万一不正攻撃を許した場合に受ける影響は非常に大きい。SQL Server 2005は、マイクロソフト社が製品のセキュリティ性能向上を最優先に据えると宣言した“Trustworthy Computing”を受けて、さまざまな面でセキュリティ機能が強化されている。

■ユーザー/スキーマ分離
 主要なセキュリティ関連の機能強化の1つは、データベースとユーザーを完全に切り離したことだ。従来のSQL Server 2000では、データベースのスキーマ名とオーナー名が実質的に同義となっており、このためオーナーとなっているユーザーをデータベースから削除するには、そのユーザーが所有しているオブジェクトの所有権を再割り当てしなければならなかった。

 これに対しSQL Server 2005では、スキーマとオーナーが完全に分離され、データベース・オブジェクトはスキーマに所有される形式に変更された。ユーザーは、直接的にはデータベース・オブジェクトを所有せず、スキーマを所有する。このためSQL Server 2005では、ユーザーを削除する場合でも、各オブジェクトの所有権を変更しなくても、スキーマを変更するだけですむ。

■パスワード・ポリシー
 従来のSQL Server 2000では、SQL Server内部で設定されたパスワードと、Windowsシステムのパスワードはまったく無関係に管理されていた。Windowsシステム側のパスワードは、グループ・ポリシーなどによってポリシー(文字数や使用文字種に関する複雑性の制限)を集中管理できるが、SQL Serverのパスワードは集中管理できなかった。

 これに対しSQL Server 2005では、Windowsのパスワード・ポリシーをSQL Server側のパスワードに対しても強制できるように変更された。これによりパスワードの強度(複雑性)や有効期限、ロックアウト条件などをWindowsシステムのそれと一致させて管理可能になる。グループ・ポリシーと組み合わせれば、SQL Server 2005のパスワード・ポリシーを集中管理することもできる。ただしこれが可能なのは、SQL Server 2005のホストOSがWindows Server 2003である場合に限られる。

 次回は、SQL Server 2005で強化された管理ツールについて解説する。End of Article


 INDEX
  [運用]ITProから見たSQL Server 2005
  第2回 データベース・エンジンの機能強化点
    1.データベース・エンジンの機能強化点(1)
  2.データベース・エンジンの機能強化点(2)
 
 運用


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間