Oracle DB からかなりの量のデータを取得する必要があり、そのためには 20 以上のクエリを実行する必要があります。同じ接続で一度に複数のクエリを実行する方法はありますか?
/ を使用してクエリを区切ってみましたが、複数のタブが開き、クエリが順番に実行されますが、1 つずつ開始する必要はありません。
Oracle DB からかなりの量のデータを取得する必要があり、そのためには 20 以上のクエリを実行する必要があります。同じ接続で一度に複数のクエリを実行する方法はありますか?
/ を使用してクエリを区切ってみましたが、複数のタブが開き、クエリが順番に実行されますが、1 つずつ開始する必要はありません。
ctrl+ shift+を押すとN、クエリを並行して実行できる新しい共有されていないワークシートが開きます。その場合、各タブにクエリを貼り付けて手動で実行する必要がありますが、いくつかのクエリをテストするだけで便利です.
いいえ、クエリごとに個別のセッションが必要です。
@Tonyは正しいです。並列で実行するには、各クエリを独自のセッションで実行する必要があります。どのツールを使用していますか?PL / SQL Developerでは、DB接続を開いてから、その接続内で複数のセッションを開き、複数のクエリを「並列」で実行できます。各クエリを手動で実行する必要がありますが、それぞれに時間がかかる場合は、おそらく必要なもの、または使用しているツールに類似したものを入手してください。
危険な生活が好きだと仮定すると、プラグマ AUTONOMOUS_TRANSACTION を使用して、1 つのスクリプトから複数の「スレッド」を実行できます。例えば:
DECLARE
PROCEDURE foo(i IN PLS_INTEGER) AS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO qux
SELECT * FROM bar
WHERE baz = i;
COMMIT;
EXCEPTION WHEN OTHERS THEN ROLLBACK;
END;
BEGIN
foo(1);
foo(2);
foo(3);
END;
したがって、これに対する最も簡単な解決策は、残りの Oracle ソフトウェアに付属している SQL Plus を使用することでした。これは不格好なツールですが、私が必要としていたことは実行しますが、他のクエリには SQL Developer を自由に使用できます。