はじめに
業務システムを運用していると、データベースの性能について考える場面が少しずつ増えてきます。
私も現在運用しているシステムで、SQL Server Express Editionを利用していますが、
「このままExpressで運用していて大丈夫なのだろうか?」
「Standard Editionへ変更するタイミングはいつなのだろう?」
という疑問が出てきました。
実際に調べてみると、「利用者数が増えたら変更」「データ件数が増えたら変更」といった曖昧な情報が多く、明確な判断基準がなかなか見つかりませんでした。
そこで今回は、自分自身が調べた内容を整理しながら、「どんなときにStandard Editionへ変更を検討すればよいのか」をまとめてみます。
SQL Server Expressの制限を改めて確認してみた
Expressは無料だが、いくつか制限がある
SQL Server Expressは無料で利用できるため、社内システムや小規模システムでは非常によく利用されています。
ただし、無料版である以上、いくつか制限があります。
主な制限
1データベースあたり約10GBまで
利用できるCPUコア数に制限がある
利用できるメモリ量に制限がある
一部の高度な機能は利用できない
これだけ見ると、「早めにStandardへ変更した方が良さそう」と感じます。
しかし、さらに調べてみると、実際にはそう単純ではありませんでした。
最初に気になったのは「データ件数」
商品数や売上件数が増えると危ないのでは?
私が最初に気になったのは、
「商品が何万件になったらStandardへ変更すべきなのだろう?」
という点でした。
システムを運用していると、
商品マスタ
売上データ
顧客データ
などは毎日増えていきます。
そのため、件数が増えるほどExpressでは厳しくなると思っていました。
調べてみると意外な結果
実際には、
データ件数だけでは判断できない
ということが分かりました。
SQL Serverは非常に高速なデータベースであり、
数十万件
数百万件
程度のデータであれば、適切なインデックスがあればExpressでも十分処理できるケースが多いようです。
つまり、
「商品が5万件になったからStandard」
という判断は、必ずしも正しいわけではありませんでした。
本当に見るべきなのは「システムの状態」
CPUやメモリの使用状況が重要
調べていく中で、一番納得できたのがこの考え方でした。
重要なのはデータ件数ではなく、
現在のシステムがExpressの限界に近づいているか
ということです。
CPU使用率が高くなってきた
例えば、
CPU使用率が常に80~100%近くになっている場合は、CPU性能が不足している可能性があります。
このような状況であれば、Standardへ変更することで改善する可能性があります。
逆にCPU使用率が20~30%程度で安定しているのであれば、Expressでも十分余裕があると言えそうです。
メモリ不足が発生している
SQL Serverはメモリを多く使うことで高速化しています。
Expressでは利用できるメモリ量に制限があるため、
同じSQLでも遅くなる
ディスクアクセスが増える
レスポンスが悪くなる
といった症状が出始めたら、Standardを検討するタイミングになりそうです。
データベース容量が10GBへ近づく
Expressには、
1データベース10GB
という分かりやすい制限があります。
現在は問題なくても、
毎月数百MBずつ増えているようなシステムであれば、
早めに移行計画を立てておいた方が安心だと感じました。
利用者数より「同時アクセス数」が重要だった
人数だけでは判断できない
最初は、
「利用者が100人を超えたらStandardかな」
と思っていました。
しかし、実際には利用者数ではなく、
同時に何人がアクセスするか
の方が重要だそうです。
例えば、
朝9時に全社員が利用する
全店舗が同時に売上登録を行う
Webサービスへアクセスが集中する
このような状況ではExpressでは厳しくなる可能性があります。
逆に、
利用者が100人いても、一度に利用するのが数人程度なら問題ないことも多いようです。
もう一つ大きなポイントは「止められないシステム」かどうか
可用性が求められるようになる
調べていて一番「なるほど」と思ったのが、この点でした。
システムが重要になればなるほど、
止められなくなる
ということです。
Express自体が遅いというよりも、
業務を止めないために
Multi-AZ
自動フェールオーバー
高可用性
などが必要になり、その結果としてStandard Editionを選択するケースが多いようです。
つまり、
性能だけではなく、
業務上の要求
によってStandardへ変更するケースも少なくありません。
私が今回調べて感じたこと
Expressは思っていたより長く使える
今回調べる前は、
「件数が増えたらStandard」
くらいに考えていました。
しかし実際には、
Expressはかなり高性能であり、
小規模から中規模の業務システムであれば十分利用できることが分かりました。
「制限に達してから」ではなく「兆候が出たら」検討する
一方で、
限界になってから慌てて移行するのも避けたいところです。
例えば、
CPU使用率が高くなってきた
メモリ不足が見え始めた
DB容量が10GBへ近づいてきた
同時アクセスで遅くなってきた
システム停止が許されなくなった
このような兆候が見え始めたら、Standard Editionへの移行を検討するのが良さそうだと感じました。
まとめ
今回調べてみて一番印象に残ったのは、
「データ件数ではなく、システムの状態を見ることが重要」
ということでした。
Express Editionは無料でありながら非常に優秀なデータベースです。
だからこそ、
「無料だから早く卒業する」のではなく、
実際の運用状況を確認しながら、
CPU使用率
メモリ使用量
データベース容量
同時アクセス数
可用性の要求
これらを総合的に見て、Standard Editionへの移行時期を判断するのが最も現実的だと感じました。
私自身も今後は、単にデータ件数を見るのではなく、CloudWatchやSQL Serverのパフォーマンス情報を定期的に確認しながら、適切なタイミングでStandard Editionへの移行を検討していこうと思います。
0 件のコメント :
コメントを投稿