[pgsql-jp: 30291] Re: indexを使用しない/ 使用する違いは?

sugita @ sra.co.jp sugita @ sra.co.jp
2003年 6月 30日 (月) 22:27:04 JST


  杉田です。

From: Genshirou Taki <g_taki @ max-corporation.com>
Subject: [pgsql-jp: 30290] Re: indexを使用しない/ 使用する違いは?
Date: Mon, 30 Jun 2003 22:07:21 +0900

;;; createdbからまったく同じ手順でデータ投入まで行い、
;;; どちらも削除は一切行っておらず、
;;; 異なるのは、OSや、DBのバージョンなどだけです。
;;; 
;;; テスト環境と本番環境というつもりだったのですが、
;;; 都合上、まったく同じ環境を整えることができませんでした。

  この条件では、DB のバージョンが違うと結果が異なる可能性は少なそうですが、両
方でのクエリーと EXPLAIN ANLAYZE の結果を見せて頂く事が可能ならば何か分かるか
も知れません。実際、DB のバージョンによって、クエリーにより、得手不得手は在り
得ます。

;;; 杉田さんのおっしゃられた”分布傾向”という言葉の意味をちょっとgoogleで調
;;; べただけでは理解できなかったのですが、

  ビュー pg_stats の correlation です。

;;; まったく同じ手順でデータを投入しても(削除は行っていない状態)、indexを使
;;; 用する/しないで違いが出るので、マニュアルでindexを使うように支持しなさい
;;; ということでしょうか?

  いえ、それはプランナを制御するという範疇です。

;;; また、100万件以上入るのは別のテーブルで、
;;; 現時点で件数がはっきりしている小さな(3000件)テーブルで今回調べたところ、
;;; 違いが発覚したしだいです。
;;; どちらも、運用段階では、insertは発生せず、更新のみありえるという条件はあ
;;; ります。

  どちらも ANALYZE & VACUUM ないし VAUUM ANALYZE はされていますよね。3000 件 
なので、ANALYZE のサンプリング数と同じデータ件数ですし。


Kenji Sugita                                      



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