web-dev-qa-db-ja.com

Oracle SQL Developerで2つのクエリを同時に実行しますか?

Oracle DBからかなりの量のデータを取得する必要があり、そのためには20以上のクエリを実行する必要があります。同じ接続で一度に複数のクエリを実行する方法はありますか?

/を使用してクエリを分離しようとしましたが、それは単に複数のタブを開き、クエリを引き続き実行しますが、1つずつ開始する必要はありません。

28
Sologoub

押す ctrl+shift+N クエリを並行して実行できる新しい非共有ワークシートを開きます。その場合は、各タブにクエリを貼り付けて手動で実行する必要がありますが、いくつかのクエリをテストするだけの場合は便利です。

44
wds

SqlDeveloperの設定:Tools > Preferences > Database > Worksheetのオプションを確認してくださいNew Worksheet to use unshared connction。これにより、各タブで複数のクエリを同時に実行できます。 screenshot も参照してください。

6
Edayan

いいえ、クエリごとに個別のセッションが必要になります。

1
Tony Andrews

危険な生活をしたい場合は、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;
0
Taldaugion

@Tonyは正しいです。各クエリを並行して実行するには、各クエリを独自のセッションで実行する必要があります。どのツールを使用していますか? PL/SQL Developerでは、DB接続を開いてから、その接続内で複数のセッションを開き、いくつかのクエリを「並列」で実行することができます-それぞれを手動で実行する必要がありますが、それぞれに時間がかかる場合、おそらくそれは必要なもの、またはそれが使用しているツールで同様のものを取得します。

0
DCookie