お客様事例

お客様事例

DB開発事例

Database

某レジシステム内部DBのパフォーマンスチューニング対応

プロジェクトの背景

某小売店にてレジシステムの入れ替え時にDB移行を行ったことによりパフォーマンストラブルが発生していた。ある程度調査は実施されておりデータベースのパフォーマンスが出ていないことがシステム全体のパフォーマンスダウンに直結しているように見えるということで、そのチューニングの依頼をいただいた。

プロジェクトの体制

  • <体制1>

  • DBA2名/インフラ基盤(主にAWS環境構築)2名/AP開発3名
  • 期間:約1年
  • <体制2>

  • 開発チーム内DBA(最大10名 全体30名)/チューニング担当2名/AWS担当2名
  • 期間:約2年半
  • 開発環境:SQLServer関連ツール/SQLServerDB/C#

プロジェクトの課題

  • データベースがデフォルトで作成されていた為、パフォーマンス要件に耐えうる状況ではない
  • 本番環境と検証環境のスペックの差が大きく、検証環境と呼べるようなテスト環境が存在しない
  • インデックスが適正に設定されていない為、読取ページ数が膨大でメモリを大量に使用している
  • SQLコーディングルールが存在せず、自由に記述していたことがパフォーマンストラブルの原因である

課題に対するaxiswareの取り組み

  • データベースにおけるパラメータ、インデックス、SQL、物理ファイルチューニングを実施
  • AWSにおいて本番環境と同様に検証環境を構築、そこでパフォーマンス検証を実施
  • インデックスが設定されていないトランザクションテーブルをリスト化し、APチームと連携した上でインデックスを事後的に構築
  • データベース設計/SQLコーディングについて研修資料を作成し、開発メンバーたちへ教育を実施

達成した成果

  • 1時間以上待機してもリプライのなかったレポートが数秒で出力可能になった。SQLチューニングを実施し、TEMPDBのDBファイル数を増やしIO分散させることで、パフォーマンスが格段に良くなった
  • パラメータ/インデックス/SQL、すべてのチューニング作業について、AWS上で検証した結果パフォーマンスアップできたエビデンスを元にリリースしたことで、リリースミスをゼロにした
  • トランザクションテーブルのほとんどにインデックスを設定できたために読取ページ数も格段に減り、CPU/メモリの使用料も安定したため、DB全体が安定化した
  • 開発者のコーディングスキルが向上した為、システム品質維持が可能になった