Oracle DBからかなりの量のデータを取得する必要があり、そのためには20以上のクエリを実行する必要があります。同じ接続で一度に複数のクエリを実行する方法はありますか?
/を使用してクエリを分離しようとしましたが、それは単に複数のタブを開き、クエリを引き続き実行しますが、1つずつ開始する必要はありません。
押す ctrl+shift+N クエリを並行して実行できる新しい非共有ワークシートを開きます。その場合は、各タブにクエリを貼り付けて手動で実行する必要がありますが、いくつかのクエリをテストするだけの場合は便利です。
SqlDeveloperの設定:Tools > Preferences > Database > Worksheet
のオプションを確認してくださいNew Worksheet to use unshared connction
。これにより、各タブで複数のクエリを同時に実行できます。 screenshot も参照してください。
いいえ、クエリごとに個別のセッションが必要になります。
危険な生活をしたい場合は、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;
@Tonyは正しいです。各クエリを並行して実行するには、各クエリを独自のセッションで実行する必要があります。どのツールを使用していますか? PL/SQL Developerでは、DB接続を開いてから、その接続内で複数のセッションを開き、いくつかのクエリを「並列」で実行することができます-それぞれを手動で実行する必要がありますが、それぞれに時間がかかる場合、おそらくそれは必要なもの、またはそれが使用しているツールで同様のものを取得します。