1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

タイムアウトを含むクエリのテストについて

Posted at

目次

  • クエリのタイムアウト設定
  • タイムアウトを意図的に発生させる方法
    • 大量のデータを使う
    • テスト時の閾値を下げる
    • 処理を一定時間止める

クエリのタイムアウト設定

正常処理時間が決まっている場合、以下のようにタイムアウトを設定してクエリを動かすことがあります。

SQL_QUERY="SET statement_timeout='【タイムアウト時間(ミリ秒)】';
          【行いたい処理】;"

タイムアウトを意図的に発生させる方法

タイムアウトを含むのテストを行う場合、タイムアウトを意図的に発生させる必要があります。
以下の方法で、意図的にタイムアウトを発生させることができ、組み合わせることでよりテスト時間を短縮することができます。

・大量のデータを使う

クエリの処理で使用するデータを増やすことで、タイムアウトの時間より処理時間を長くする方法です。

・テスト時の閾値を下げる

タイムアウトの時間を下げることで、タイムアウトの時間より処理時間を長くする方法です。

・処理を一定時間止める

スリープして処理を一定時間止めることで、タイムアウトの時間より処理時間を長くする方法です。

例:

SQL_QUERY="SET statement_timeout='【タイムアウト時間(ミリ秒)】';
          SELECT pg_sleep(【止めたい時間(秒)】);
          【行いたい処理】;"
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?