テストのために、遅い SQL ステートメントを人為的に作成する必要があります。私はOracle/Javaでこれを達成することができました(詳細は以下)が、T-SQL/VB.Net/SQLServerで同じことを達成するのに苦労しています.
アイデアは、単純に数秒 (たとえば 5 秒) スリープし、ダミーの値を返す関数を用意することです。
(代わりに) 'waitfor' T-SQL を使用しようとしましたが、これは FUNCTIONS では許可されていません (明らかに副作用)。だから私は(巨大なテーブルを作成したり、入れ子になった空のループを回転させたりすることを除いて)これを行う最良の方法はCLRオブジェクトを使用することだと考えています....
誰かがこれを達成するための簡単な手順を提供できますか?
Oracle での手順は次のとおりです。まず、スリープを実行する Java クラスを作成します。
package com.monojohnny;
public class sleepy {
            public static String sleep()  {
                int seconds=5;
                try {
                        Thread.sleep(seconds * 1000);
                }
                catch(Exception e) { ; }
                return "Finished Sleeping for "+Integer.toString(seconds)+" seconds.";
            }
}
次に、次のようなものでコンパイルします。
javac -source 1.4 -target 1.4 com/monojohnny/sleepy.java
3 番目に、結果の .class ファイルを Oracle DB にロードします。
call loadjava -user %username%/%password% com\monojohnny\sleepy.class
最後に、クラスのメソッドを呼び出す PL/SQL 関数を作成します。
CREATE OR REPLACE FUNCTION sleepy RETURN VARCHAR2
            AS LANGUAGE JAVA
            NAME 'com.monojohnny.sleepy.sleep() return java.lang.String';
    /
    show errors
    quit;
そして、これは関数をテストした結果です:
SQL> select sleepy from dual;
Finished Sleeping for 5 seconds