システム開発ブログ

SQL Serverでのサイジング

前田

前田 (2011年7月 1日 21:06)
流通システム部 / SQLServer

システムを提案する場合や、もちろん構築する場合にも、
非機能要件としてサイジングをする必要があります。

サイジングをしていないと、
適切なハードウェアを選択できませんし、
パフォーマンスを担保するための設計もできません。

私はMicrosoft社のSQL Serverを使ったシステムで
サイジングをする機会が多くあるのですが、
単純な行×列を基にしたサイジング方法はMicrosoft社からも公開されていますし、
サイジングのためのツールなどというものも売られていたりするようですが、
実際は、このサイジングというのがなかなか曲者で
正確にサイジングするというのはかなり難しいことなのです。

そこで
そのMicrosoft社のSQL Serverをベースとした
サイジングのときに、私が注意するポイントを以下に挙げてみます。

1. データ量を正確に見積もる
これは、本当の業務量をユーザにきっちりとヒアリングするという面と、
エンティティ構造の特性を把握したり、
ログなどシステム内部で必要とする情報について正確な増加率を見積もるという、
システム寄りの面があります。

2. インデックスのサイズを見積もる
必要なインデックスを事前に設計することが前提ですが、
詳細な設計工程前でも、
大体どのテーブルにどのようなインデックスが必要か想定し、
その分のサイズを考慮する必要があります。

3. トランザクションログ、tempdbのサイズを見積もる
これらは、バックアップやログ切捨てのタイミング、
サービスのリブートの有無やタイミングによっても変わってきます。
最大でどこまで大きくなるか、
また、特別なイベントで肥大するのか
平常運転時の平均値を知ることもポイントです。

4. 実際に運用されているシステムを参考にする
これで数字を出すというわけではなく、
試算したものがどれだけリアルかを見るには、
実際運用されているシステムの実サイズと試算値を参考にするのがよいでしょう。

システム投資で大きく見積もって保険をかけられるお客様だけではなく、
コストを切り詰めた中でシステムを導入したいというお客様も多くおられる中、
最適なコストを見積もるためにも
正確なサイジングを基にご提案できるようにしたいものです。

システムのトラブル解決を承ります。すぐにシステムリフォームを体験できますシステム診断・システムリフォームのお申し込みはこちらから。

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

ページのトップ