[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 メーリングリストの案内