Я должен получить довольно мало данных от нашего оракула DB, и сделать так я должен работать 20 + запросы. Там какой-либо путь состоит в том, чтобы выполнить больше чем один запрос за один раз на том же соединении?
Я пытался использовать / для разделения запросов, но это просто открывает несколько вкладок и запросов, все еще выполненных последовательно, хотя я не должен запускать их один за другим.
Итак, простейшим решением было использование SQL Plus, поставляемого с остальным программным обеспечением Oracle. Это неуклюжий инструмент, но он делает то, что мне нужно, а я могу использовать SQL Developer для других запросов.
@Tony прав, каждый запрос должен выполняться в отдельной сессии для параллельной работы. Какой инструмент вы используете? В PL/SQL Developer я могу открыть соединение с БД, затем открыть несколько сессий внутри этого соединения и запустить несколько запросов "параллельно" - мне придется выполнять каждый из них вручную, но если каждый из них занимает много времени, возможно, это даст вам то, что вам нужно, или что-то подобное в том инструменте, который вы используете.
Нет, вам потребуется отдельный сеанс для каждого запроса.
Предполагая, что вы любите опасную жизнь, вы можете запустить несколько «потоков» из одного сценария, используя прагму 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;