[pgsql-jp: 39916] Re: 1 回目のUPDATEが異常に遅い

Shimada.Hirokazu @ toshiba-sol.co.jp Shimada.Hirokazu @ toshiba-sol.co.jp
2009年 7月 9日 (木) 09:42:49 JST


板垣様

下記、ご教示ありがとうございます。
大変参考になりました。

今後ともよろしくお願いいたします。

以上

** 5月より電話番号が変わりました **
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/  東芝ソリューション(株) 
_/  製造産業ソリューション事業部 産業ソリューション第二部
_/  産業システム技術第三担当    略称:(製造ジ)[産2S](産S3)
_/    島田 洋一 
_/  E-Mail      : shimada.hirokazu @ toshiba-sol.co.jp 
_/  TEL(勤務先) : 042-340-6642  FAX(勤務先) : 042-340-6017 
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

pgsql-jp-bounces @ ml.postgresql.jp wrote on 2009/07/08 17:54:03:

> 
> Shimada.Hirokazu @ toshiba-sol.co.jp wrote:
> 
> > > 「列::date = NOW()::timestamp」の比較だと、date → timestamp の
> > > 変換が優先されるので、インデックスが使われません。
> > 
> > NOW()はtimestamptz型で、date型やtimestamp型とではindexが利用されな
> いようでした。
> > ちなみに「timestamp型=date型」の場合は、なぜかindexが利用されました。
> 
> 一部例外もありますが、インデックスが使われるかどうかは、
> ↓のような法則があります。キャストも関数だと考えてください。
> 
>                                  インデックスが...
>   パターン1 : 列 = 定数       → 使われる。
>   パターン2 : 列 = 関数(定数) → 使われる。「関数(定数)」の結果は定数な
ので。
>   パターン3 : 関数(列) = 定数 → 使われない。
> 
> 自動キャストは、パターン3 の状態になりやすいので、扱いづらい機能です。
> 結果自体は正しいので、データ量が少ないと見逃す可能性がありますし…。
> 
> # 「自動キャストのためにインデックスが使えない場合は WARNING をあげる」
> # なんていうオプションがあると嬉しいのですけど ;-)
> 
> ------------------------------------------------------------
> NTT オープンソース ソフトウェア センタ
> 板垣貴裕 <itagaki.takahiro @ oss.ntt.co.jp>
> 
> 




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