特集
» 2010年07月21日 00時00分 公開

基礎解説:ここまで使えるSQL Server Express Edition (2/2)

[島田広道,デジタルアドバンテージ]
前のページへ 1|2       

Standardとの違いからExpressの限界を探る

 前のページで紹介したSQL Serverの有償製品のうち、Web/Developerの各エディションは用途が限定されている特殊なものだ。一方、Workgroup/Standard/Enterprise/Datacenterは汎用的なエディションで、システムの規模で分類されている。そこで、汎用的かつ標準的なエディションであるStandardを比較対象として取り上げ、Expressにどのような制限があるのか確認してみる。

項目 Express Standard
性能/スケーラビリティ  
同時利用可能な物理プロセッサの最大数 1基 4基
利用可能なメモリの最大容量 1Gbytes 64Gbytes
データベースのサイズ上限 10Gbytes(2008 R2以降)/4Gbytes(2008以前) 事実上無制限(512Pbytes)
64bitサポート ネイティブ(2008以降)/WOW(2005) ネイティブ
フェイルオーバー・クラスタリング ×
データベース・ミラーリング ×(ミラーリングの監視のみ可能)
バックアップ時の圧縮 ×
仮想化のサポート  
仮想マシンでの動作
Hyper-Vライブ・マイグレーション ×
レプリケーション  
レプリケーション △(データの受け取りのみ可能)
レポート機能(Reporting Services)
データ・ソースとして利用可能なSQL Server Expressのみ すべてのエディション
レポート履歴や実行スナップショット、キャッシング ×
管理機能  
ポリシー・ベースの管理
PowerShellのサポート
GUI管理ツール(SQL Server Management Studio) △(スケジュール管理タスクが使えないなど制限あり)
SQL Serverインポート/エクスポート・ウィザード
メンテナンス作業の定期的な自動実行(メンテナンス・プラン) ×
DBエンジンからの自動的なメール送信(データベース・メールまたはSQL Mail) ×
DBエンジンのチューニング・アドバイザ ×
イベント監視・分析用GUIツール(SQL Server Profiler) ×(Standard以上のエディションを使ったExpressのエンジンのプロファイルは可能)
そのほか  
フルテキスト検索 ○(with Advanced Servicesエディションのみ)
OLAP分析 × ○(制限あり)
データ・マイニング × ○(制限あり)
Extract/Transform/Load(ETL) × ○(制限あり)
ExpressとStandardとの機能や性能の比較
Standardが持っている機能から主要なものをピックアップした。影響が大きいのはデータベース・サイズやプロセッサ数、メモリ容量の上限だろう。また管理する上では、バックアップやログの削除といったメンテナンス作業が自動実行できない点も重要だ。クラスタリングやデータベースのミラーリングなど可用性のための機能も欠けている。

 以下、影響の大きな制限をピックアップしてみる。

■データベース・サイズの制限はシステムの寿命を決しかねない
 Standardのデータベース・サイズの上限が512Pbytesと事実上無制限であるのに対し、SQL Server 2005/2008 Expressでは4Gbytes、SQL Server 2008 R2 Expressでは10Gbytesに制限される。この上限に達したデータベースには新たなデータの追加などができなくなり、データベースとして使えなくなってしまう。このように非常に重大な制限がSQL Server 2008 R2 Expressで2.5倍の10Gbytesに緩和されたことは、Expressにとって重要なポイントといえる。なお、ここでいうデータベース・サイズとは、インスタンスが保持している複数のデータベースのうち、1つ1つのサイズを意味する。全データベースの合計でも、また全インスタンスの合計でもない。

 では、具体的にどのようなデータをどれくらい追加すると上限に達してしまうのだろうか? 新聞の朝刊のテキスト・データを収録する場合と、テキスト・ベースのBBSの投稿を保存する場合、それぞれについて概算してみた。

SQL Serverのバージョン データベース・サイズの上限 新聞の朝刊部数に換算 テキスト・ベースのBBS投稿に換算 ←1分で1投稿の場合の年数に換算
SQL Server 2005/2008 Express 4Gbytes 約1万500部 約176万投稿 3.35年
SQL Server 2008 R2 Express 10Gbytes 約2万6200部 約440万投稿 8.37年
Expressのデータベース・サイズの上限による具体的なデータ量の限界
新聞については、朝刊1部の文字数を20万文字とし、そのテキスト・データをデータベースに収録できる最大部数を計算した。BBS投稿については、弊社で運用中のあるBBS(HotFix Report BBS)への投稿を保存しているSQL Serverから、1投稿あたりのデータベース消費量の平均(2.39Kbytes)を導き出し、最大投稿可能数を計算した。

 どちらもおおざっぱな概算だが、こうしてみると、4Gbytesあるいは10Gbytesというデータベース・サイズの制限は意外に大したことがないようにも思える。BBSでは1分に1回、1000文字程度の投稿があったとしても3年以上保つことになる。

 ただ、もし画像なども投稿可能で、かつデータベースに画像を保存する設計だと、年数はぐっと短くなる。1レコードあたりのサイズが大きかったり、レコード数が非常に多かったりする用途だと、Expressのデータベース・サイズの上限がシステムの寿命を決定しかねない。

■プロセッサ数やメモリ容量の制限はパフォーマンスを下げる
  Expressの場合、同時利用可能な物理プロセッサの最大数が1基のみ、また利用可能なメモリ容量(SQL Serverのプロセスが利用するメモリ・サイズ)が最大1Gbytesに制限される(いくら物理メモリに余裕があっても、Expressのプロセスはこれ以上は使用しない)。これらはいずれもSQL Serverのパフォーマンスを高められない原因となる。

 ただプロセッサ数については、コア数ではなく物理プロセッサ数での制限なので、多くのコアを内蔵したプロセッサを搭載したサーバであれば影響は少ないだろう。例えばプロセッサのソケットが2つあるサーバ・マシンに、4つのコアを内蔵するプロセッサを2基搭載した場合、「物理プロセッサは1基」とカウントする。このときExpressのプロセスは同時に1物理プロセッサ、すなわち最大4コアを利用できる。

 一方、メモリの制限に達するとディスク・アクセスが増えるため、総じてパフォーマンスが下がりやすくなるはずだ。

■有償製品より管理の手間がかかる!?
  Expressでは、さまざまなタスクをスケジュール実行(定期的な実行)する「SQL Serverエージェント」が利用できない。そのため、SQL Server単体では、データベースのバックアップや古いログの削除といったメンテナンス作業を定期的に自動実行できない。Windowsのタスク・スケジューラなどを併用すればスケジュール実行は可能だろうが、有償製品に比べて手間がかかることに変わりはない。

 そのほかにもSQL Server Profilerというイベント監視・分析用GUIツールが使えなかったり、何らかのトリガでDBエンジンから自動的にメールを送信して通知する機能がなかったり、といった監視機能も減らされている。これも管理の手間がかかる要因の1つとなる。

■可用性も高くない
 クラスタリングやデータベース・ミラーリングといった可用性を高める機能がないため、Windows OS側で何らかの対策をしないと、ダウンタイムの短い実運用は厳しいだろう。


 以上、SQL Server Express Editionの制限に注目して、その限界と影響を探ってみた。まとめてみると、データベースに追加されるデータ量が多くて更新頻度も高く、ダウンタイムも短くなければならない、といった用途では、初めからStandardなどの有償製品を選んだ方が安全だ。Expressだと管理や監視が行き届かず、結果として運用中にデータベースがパンクする危険性が高く、「タダより高いモノはない」ことになりかねない。逆に、追加データ量が決して多くなく、データ更新頻度も少なく、ダウンタイムが比較的長くてもかまわない用途であれば、Expressでも実運用は可能だろう。それでも、Expressにない可用性や管理に関する機能を、ある程度はWindows側でカバーするよう工夫せざるをえないかもしれない。

「[基礎解説]」のインデックス

[基礎解説]

前のページへ 1|2       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。