Выполнить 2 запроса одновременно в Oracle SQL Developer? - PullRequest
25 голосов
/ 13 июля 2010

Мне нужно получить довольно много данных из нашей базы данных Oracle, и для этого мне нужно выполнить более 20 запросов.Есть ли способ запустить более одного запроса одновременно на одном и том же соединении?

Я пытался использовать / для разделения запросов, но это просто открывает несколько вкладок, и запросы все равно выполняются последовательно, хотя я ненадо начинать их один за другим.

Ответы [ 6 ]

43 голосов
/ 30 октября 2012

Нажатие ctrl + shift + N откроет новый неразделенный лист, который может выполнять запросы параллельно.В этом случае вам нужно вставить запрос в каждую вкладку и запустить их вручную, хотя это удобно при тестировании нескольких запросов.

5 голосов
/ 23 февраля 2017

В настройках SqlDeveloper: Tools > Preferences > Database > Worksheet установите флажок для New Worksheet to use unshared connction. Это позволит вам выполнять несколько запросов одновременно, каждый на каждой вкладке. См. Также снимок экрана .

1 голос
/ 13 июля 2010

Нет, для каждого запроса вам потребуется отдельный сеанс.

0 голосов
/ 18 августа 2010

Если вы хотите жить опасно, вы можете запускать несколько «потоков» из одного скрипта, используя прагму AUTONOMOUS_TRANSACTION.Например:

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 голосов
/ 28 июля 2010

Итак, самым простым решением для этого было использование SQL Plus, поставляемого с остальным программным обеспечением Oracle. Это неуклюжий инструмент, но он делает то, что мне было нужно, пока я могу свободно использовать SQL Developer для других запросов.

0 голосов
/ 13 июля 2010

@ Тони правильный, каждый запрос должен выполняться в своем собственном сеансе для параллельной работы.Какой инструмент вы используете?В PL / SQL Developer я могу открыть соединение с БД, затем открыть несколько сессий в этом соединении и выполнить несколько запросов «параллельно» - мне нужно выполнить каждый из них вручную, но если каждый из них занимает много времени, возможно, это будетполучить то, что вам нужно, или что-то подобное в любом инструменте, который вы используете.

...