すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:SQL文のタイムアウト期間を設定するにはどうすればよいですか。

最終更新日:Sep 29, 2024

このトピックでは、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コンソールで次の手順を実行します (インスタンスレベルの変更) 。

    1. AnalyticDB for PostgreSQLコンソールにログインします。

    2. ホームページの左上でリージョンを選択します。

    3. 管理するインスタンスを検索し、インスタンスIDをクリックします。

    4. 左側のナビゲーションウィンドウで、パラメーター設定 をクリックします。

    5. パラメーター設定 ページで、statement_timeoutパラメーターを見つけ、実行値 列のEdit parametersアイコンをクリックします。

    6. 新しいパラメータ値を入力します。

      • 有効な値: 0 ~ 2147483647

      • 値を0に設定すると、SQL文のタイムアウト機能は無効になります。

      • 単位:ミリ秒。

      説明

      他のタスクへの影響を防ぐため、SQL文のタイムアウト期間を60000ミリ秒を超える値に設定することを推奨します。

    7. [OK] をクリックします。

    8. 右上隅の [送信] をクリックします。

    9. パラメーターの変更 メッセージで、[OK] をクリックします。

  • 次のSQL文 (セッションレベルの変更) を実行します。

    SET statement_timeout = 0;
  • 次のSQLステートメントを実行します (ユーザーレベルの変更) 。

    ALTER ROLE <username> SET statement_timeout TO 600000;
    説明

    usernameを、SQL文のタイムアウト期間の設定に使用するデータベースアカウントに置き換えます。