システム開発時の性能対策

システムの性能対策は、基本的には下記の流れで行われます。

①システム要件定義フェーズで、性能要件を合意する。
②基本設計フェーズで、①を満たすインフラを選定する。
  尚、業務機能は性能要件を満たすように、画面・帳票・バッチ・テーブルを設計する。
③基本設計に基づき、詳細設計・製造を行う。
④結合テスト・総合テストで性能対策を行い、問題点を検証・修正する。

私は業務系SEでしたのでインフラの選定は専門外ですが、業務アプリの観点でいくと、基本設計時点でほぼその後の性能の良し悪しは決まると思っています。

また、経験上、特に重要なのはテーブルの設計にあると考えています。

UIも重要ですが、大量の項目を配置したり、Webシステムなのに横長のレイアウトにしたりしなければ、まあそれほど大差無いでしょう。
※某コンサル会社が上記のような画面を設計したときは、ユーザー含めて皆で唖然としたものでした。(笑)

スポンサーリンク


話は戻ってテーブルの設計ですが、大まかには下記のことに留意しましょう。

①正規化し過ぎない
  結合処理を削減するために、マスタなどの項目をトランザクションテーブルに引き込むようにする。
  ただし、あまりにも多くの項目を保持すると②を満たせなくなるのでほどほどに。
  (使用頻度の高い項目に絞るなど)

②レコード長を長くし過ぎない

  テーブルのデータ読込単位は、OSとDBMSのブロックサイズにより決定される。
  つまり、レコード長が短い方が1ブロックに入るレコード数が多くなるので、読込性能が良い。

③各業務機能からの参照条件を考慮する
  主キー項目が多くなってしまう場合は、複合キー化を検討する。
  また、各機能からの検索条件を整理して性能に影響がありそうな検索条件を絞り込み、インデックス候補の目星をつけておく。
  ※インデックスが効かない検索条件があれば、検索方法の見直し等も行う。

細かいことを挙げれば沢山出てきますが、最低でもこれら3点をクリアすれば、性能試験時にテーブルから設計し直しになるような事態にはなりにくいと思います。

あくまで私の経験則でしかありませんが、ご参考になれば幸いです。



余談ですが、翔泳社からこんな本に関するメールがきました。
(CodeZineに登録してるもんで)


グラス片手にデータベース設計(生産管理システム編) [ 梅田弘之 ]

グラス片手にデータベース設計(生産管理システム編) [ 梅田弘之 ]
価格:2,592円(税込、送料込)



かなりそそるタイトルですが、販売管理・生産管理と関係無い業界の会社ですので、残念ながら私はまだ読んでません。
ベンダーSEではないのであまりガツガツテーブル設計することは無いということもあるのですが、、、会計システム編はちょっと役に立つかもと思っています。

もしベンダーSEで関連するシステムを担当している方がいらっしゃったら、参考にしてみてはいかがでしょうか。
(一応、評判は上々のようです)

コメントの投稿

非公開コメント

プロフィール

Author:たみおと
36歳にして社内SEに転職しました。
ベンダーSE・社内SEどちらの方が記事を読んでも、ご参考になる体験談をUPしていきたいと思っていますので、宜しくお願い致します。

ブログランキング
よろしければ、ポチっと一押しお願いします。m(__)m

ブログランキング・にほんブログ村へ
カテゴリ
よく読まれている記事
最新記事
おすすめ書籍
[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

なぜ、システム開発は必ずモメるのか? [ 細川義洋 ]
価格:2160円(税込、送料無料) (2016/11/7時点)



[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

絵で見てわかる RPAの仕組み (絵で見てわかる) [ 西村 泰洋 ]
価格:2786円(税込、送料無料) (2018/7/30時点)



月別アーカイブ
検索フォーム
リンク