0
 SELECT a.COL1, a.COL2, b.COL3 ,
 a.COL4, e.COL1 , e.COL5,  e.COL6,
 e.COL7, a.COL8,b.COL9, b.COL10 , a.COL11,
 f.COL12 FROM TABLE1 a, TABLE2 b
 TABLE3 c, TABLE4 d, TABLE5 e, TABLE6 f 
 WHERE a.COL1=b.COL1 and a.COL2=c.COL2 and c.COL3=d.COL3 and d.COL5='2'
 ORDER BY date(a.COL8) DESC, a.COL2 desc, a.COL1

上記のクエリをPGAdminまたはNavicatを使用してデータベースで直接実行すると、570件の結果が返され、1秒以内に終了します。ただし、pg_queryを介して実行すると、約40(!)秒かかります。

なぜこれなのか誰か知っていますか?

4

1 に答える 1

2

さて、答えはかなり奇妙であることが判明しました。過去に他の誰かが書いた関数によって提供された接続を使用していました...使用していたことがわかりました

pg_query($db_platform, "set enable_seqscan=false");

その接続を使用しているときにクエリが壊れていたのも不思議ではありません。

于 2013-03-08T20:03:06.750 に答える