質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Q&A

解決済

2回答

27850閲覧

PostgreSQLで時間のかかるSQL文が途中で放棄されないようにしたい

thisprogrammer

総合スコア27

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

0グッド

0クリップ

投稿2017/06/12 03:52

###分からないこと

とある処理時間が特別長いSQLをPostgreSQLに投げたのですが、時間がかかりすぎるSQLとして処理が中断されてしまいました。
どんなに処理時間がかかろうと、この処理が中断されるのを無くしたいです。

どんな設定を行えばよいのでしょうか?宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2017/06/12 03:55

「処理時間が特別長いSQL」を「同じ結果だが時間がかかり過ぎないSQL」に改善する策は考えられませんか?
guest

回答2

0

ベストアンサー

PSQLでの直接実行でしょうか。
以下の設定で、タイムアウトの時間を無制限にします。

set statement_timeout to 0

投稿2017/06/12 04:19

szk.

総合スコア1400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thisprogrammer

2017/06/12 05:43

それです!その設定を知りたかったんです。情報ありがとうございます。
guest

0

通常、処理時間が改善できるようにPostgreSQL のパフォーマンスチューニング
を考えます。

投稿2017/06/12 04:09

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuba

2017/06/12 05:01

チューニングの余地があるクエリであるということをどうやって知り得たのですか?
thisprogrammer

2017/06/12 05:42

チューニングのしようがないSQL文なのでどうしてもtimeoutさせたくなかったのです。申し訳ございません。
Orlofsky

2017/06/12 05:48

yubaさん チューニングできるか調査する必要があります。質問者からSQLやcreate table, create index, 実行計画、各テーブルのレコード件数などが提示されなければなりませんが。
yuba

2017/06/12 06:31

もう少し真面目にコメントしますと、チューニングで不効率なクエリを「とても速く」することは可能な場合がありますが、「必ず○○秒以内に終わる」ことを保証することはできません。データにもプロセスにも様々な状態がありますので。すると、絶対にタイムアウトしてほしくないという要件に対してチューニングでどんなに効率化しても目的を達成することはできないのです。唯一の方法は「タイムアウトしないように設定変更する」となるわけです。
Orlofsky

2017/06/12 07:29

確かにstatement_timeoutの設定がいちばんでしょうね。Oracleで処理時間を十分の一にチューニングできたこともあります。お客様によっては現場に入って調べたら、同じ列名なのにテーブルによってデータ型が違っている列がいっぱいあって、何千万行もあるテーブルで暗黙の型変換で全件走査が多発しているのにテーブルは変更してはならないとか、ほとんどのSELECT文のFROM句にテーブルかビューが1つしか記述していないのに、SQLを変更しないでチューニングしてくれとか、小さなDBサーバーがいっぱいあって、DB LINk付きのMATERIALIZED VIEWを多用してリフレッシュがボトルネックになっているのにスケールアップしないでチューニングとか、難しい注文で苦戦したことも少なくないです。涙
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問