sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLでのpg_sleep()のしくみ

    PostgreSQLでは、pg_sleep()を使用できます 指定された秒数の間実行を遅らせる関数。

    指定された秒数が経過するまで、現在のセッションのプロセスをスリープ状態にします。 MySQLのsleep()と同様に機能します 関数、およびTSQLのwaitfor SQLServerのステートメント。

    pg_sleep() 関数は倍精度を受け入れます 引数なので、分数秒の遅延を指定することもできます。

    睡眠の遅れは少なくとも 指定されている限り。ただし、サーバーの負荷や、プラットフォームのスリープ間隔の効果的な解決などの要因によっては、さらに長くなる可能性があります。

    構文

    構文は非常に単純です:

    pg_sleep(seconds)

    seconds 倍精度です プロセスが続行するまでに経過する必要のある秒数/分数秒を指定する値。

    使用法を示す例を次に示します。

    \x
    SELECT 
      clock_timestamp(),
      pg_sleep(1),
      clock_timestamp(),
      pg_sleep(1),
      clock_timestamp();

    結果(垂直出力を使用):

    clock_timestamp | 2020-06-28 13:46:53.808072+10
    pg_sleep        |
    clock_timestamp | 2020-06-28 13:46:54.870423+10
    pg_sleep        |
    clock_timestamp | 2020-06-28 13:46:55.938278+10

    clock_timestamp()を使用しました この例では、ステートメントの実行中に変更されるためです。これにより、ステートメントの進行に合わせて更新された値を確認できます。

    この例では、結果を見やすくするために、拡張表示(「垂直出力」と呼ばれることもあります)を使用しました。

    \xを使用して、psqlの展開表示を切り替えることができます 。

    フラクショナル秒

    前述のように、必要に応じて秒単位の遅延を指定できます。

    SELECT 
      clock_timestamp(),
      pg_sleep(.5),
      clock_timestamp(),
      pg_sleep(.5),
      clock_timestamp();

    結果(垂直出力を使用):

    clock_timestamp | 2020-06-28 15:03:52.496211+10
    pg_sleep        |
    clock_timestamp | 2020-06-28 15:03:53.041063+10
    pg_sleep        |
    clock_timestamp | 2020-06-28 15:03:53.553291+10

    負の値

    負の値を指定すると、実行が遅れることはありません。

    SELECT 
      clock_timestamp(),
      pg_sleep(-1),
      clock_timestamp(),
      pg_sleep(-1),
      clock_timestamp();

    結果(垂直出力を使用):

    clock_timestamp | 2020-06-29 09:03:19.056681+10
    pg_sleep        |
    clock_timestamp | 2020-06-29 09:03:19.056682+10
    pg_sleep        |
    clock_timestamp | 2020-06-29 09:03:19.056683+10

    1. OPENJSON、JSON_QUERY、およびJSON_VALUE(SQL Server)を使用するときに特殊文字を含むJSONキーを参照する方法

    2. Moodle用のMySQLデータベースのフェイルオーバーを自動的に管理する方法

    3. SQL Serverの列からノーブレークスペースを削除するにはどうすればよいですか?

    4. Mysqlは2つのテーブルに挿入します