アプリ版:「スタンプのみでお礼する」機能のリリースについて

PostgreSQL8.1.3にて、長いwhere句のあるSELECT文を実行したところ、
「server closed the connection unexpectedly」
のエラーとなってしまいました。

エラーとなったSQL文は317726文字で、
where句のin条件のリスト個数が非常に多くなっています。
試しに、in条件のリスト部分を減らし、
156000文字までSQL文を短く短くしたら、エラーは回避できました。
in条件ではなくor条件に変更すると、エラーとの境目のSQL文長は上記とは異なることから、
SQL文長だけが影響しているとは思えません。

SQL文を改修して、エラーを回避するにしても、ここらへんの限界値がわからないと改修できませんので、
改修の目安(信頼できるSQL文長がどのくらいなのかなど)をご教授お願いします。

A 回答 (1件)

すごく長いSQLですね。


INやORを使わずにEXISTSで書けばどうでしょうか?
文字数じゃなくパフォーマンスのせいだと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
さすがに、こんな長いSQL文を発行するのは問題だと思いますので、
処理方式から見直すことにしました。
そのときには、構文も含めて検討したいと思います。

お礼日時:2008/06/06 14:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す