- PR -

24時間ノンストップ運用のDB設計

投稿者投稿内容
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2005-08-03 10:36
unibon です。こんにちわ。

引用:

あいこさんの書き込み (2005-08-02 13:33) より:
1.クライアントからの問い合わせに対して、DBで保持している
  最新の「在庫数量」をリアルに応答します。
  又、「在庫数量」に対し出荷数を減算する更新を行います。
2.日次夜間バッチにて「在庫数量」に対し入荷数を加算する
  更新を行います。


あまり、こういうアプリケーションの経験はないのですが、抜本的なソリューションとしては「日次夜間バッチ」が要らなくなるようにするのが簡単なはずです。このためには、「在庫数量」の更新をまめにおこなうような感じになります。しかし、現実的には種々のしがらみでなんらかのバッチは残さざるを得ないことが多いと思いますので、これは非現実的なのだろうと思います。
他のソリューションとしては、バッチ処理のトランザクションを小分けにする方法があります。もしも、すべての商品種類を網羅して、ひとつのトランザクションにする必要がなければ、商品種別毎にトランザクションを分ければ、上記の「1.」の処理を割り込ませることは容易になるだろうと思います。ただし、今までひとつの UPDATE の SQL で済んでいたものを、複数回投げることになるので多少面倒になるかもしれません。

スキルアップ/キャリアアップ(JOB@IT)