このトピックでは、AnalyticDB for PostgreSQLのSQL文のタイムアウト期間を設定する方法について説明します。
問題の説明
SQL文が3時間以上実行されると、次のエラーメッセージが返されます。
ERROR: canceling statement due to statement timeoutTime: 10801445.540 ms (03:00:01.446)原因
デフォルトでは、AnalyticDB for PostgreSQLのSQL文のタイムアウト期間は3時間に設定されています。 SQL文が3時間以上実行された場合、文の実行は終了します。
解決策
AnalyticDB for PostgreSQLは、SQLステートメントのタイムアウト期間を変更するためのstatement_timeoutパラメーターを提供します。 次のいずれかのメソッドを使用して、statement_timeout値を変更できます。
AnalyticDB for PostgreSQLコンソールで次の手順を実行します (インスタンスレベルの変更) 。
AnalyticDB for PostgreSQLコンソールにログインします。
ホームページの左上でリージョンを選択します。
管理するインスタンスを検索し、インスタンスIDをクリックします。
左側のナビゲーションウィンドウで、パラメーター設定 をクリックします。
パラメーター設定 ページで、statement_timeoutパラメーターを見つけ、実行値 列の
アイコンをクリックします。 新しいパラメータ値を入力します。
有効な値: 0 ~ 2147483647
値を0に設定すると、SQL文のタイムアウト機能は無効になります。
単位:ミリ秒。
説明他のタスクへの影響を防ぐため、SQL文のタイムアウト期間を60000ミリ秒を超える値に設定することを推奨します。
[OK] をクリックします。
右上隅の [送信] をクリックします。
パラメーターの変更 メッセージで、[OK] をクリックします。
次のSQL文 (セッションレベルの変更) を実行します。
SET statement_timeout = 0;次のSQLステートメントを実行します (ユーザーレベルの変更) 。
ALTER ROLE <username> SET statement_timeout TO 600000;説明usernameを、SQL文のタイムアウト期間の設定に使用するデータベースアカウントに置き換えます。