- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL文長の制限)
SQL文長の制限について知りたい
このQ&Aのポイント
- PostgreSQL8.1.3において、長いwhere句のあるSELECT文を実行すると「server closed the connection unexpectedly」というエラーが発生します。SQL文長は317726文字で、in条件のリストが非常に多いことが原因と考えられます。試しにin条件を減らして156000文字までSQL文を短くしたらエラーは回避できましたが、SQL文長のみが問題ではない可能性もあります。
- SQL文を改修してエラーを回避するためには、どのくらいのSQL文長が安全なのかが分からないため、改修の目安を知りたいです。
- また、in条件をor条件に変更すると、エラーとなるSQL文長が変わるため、SQL文長だけが影響要素ではないと考えられます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
すごく長いSQLですね。 INやORを使わずにEXISTSで書けばどうでしょうか? 文字数じゃなくパフォーマンスのせいだと思います。
お礼
ご回答ありがとうございます。 さすがに、こんな長いSQL文を発行するのは問題だと思いますので、 処理方式から見直すことにしました。 そのときには、構文も含めて検討したいと思います。