[pgsql-jp: 37444] Re: SQLの実行速度について

Kiyoshi Mizuno kiyoshi_mizuno @ mail.toyota.co.jp
2006年 8月 22日 (火) 11:21:20 JST


水野です。

> -----Original Message-----
> 
> ただ、クライアントより過去の日付の時点での状態をスナップショット
> のように見たい!という要望がありまして・・・(涙)
> この方法だと最新のデータには有効ですが、過去の時点での最新データ
> 検索時には適用できなくなってしまいます。

「フラグ方式が手っとり早いんじゃないかな?」とは考えていたのですが、
やはりそういう裏があったんですね。

複雑なSELECT文1個とUPDATE+簡単なSELECT文とでどちらが早いか
分かりませんが、中井さん案の改造版として

1.最新のデータが欲しい時
	(0)フラグを落とす
	(1)各商品のMAX(ID)にフラグを立てる
	(2)フラグの立っているレコードを取得する

2.任意の時点のデータが欲しい時
	(0)フラグを落とす
	(1)WHERE句に日付条件を追加して各商品のMAX(ID)にフラグを立てる
	(2)フラグの立っているレコードを取得する

というのはどうでしょう。
うまく書けば同一のSQL文で1も2も対応できると思いますが。




pgsql-jp メーリングリストの案内