我需要从我们的oracle数据库中检索相当多的数据,为此我需要运行20多个查询。有没有办法在同一个连接上同时运行多个查询?我尝试使用/来分隔查询,但这只是打开多个选项卡,查询仍然按顺序运行,尽管我不必逐个启动它们。
qnakjoqk1#
按下ctrl+shift+N将打开一个新的非共享工作表,可以并行运行查询。在这种情况下,您必须在每个选项卡中粘贴一个查询,然后手动运行它们,但如果只是测试几个查询,它会很方便。
pcww981p2#
在SqlDeveloper首选项中:Tools > Preferences > Database > Worksheet检查New Worksheet to use unshared connction的选项。这将允许您同时执行多个查询,每个选项卡中的每个查询。请参阅screenshot。
Tools > Preferences > Database > Worksheet
New Worksheet to use unshared connction
xkrw2x1b3#
不需要,每个查询需要单独的会话。
qlvxas9a4#
假设您喜欢冒险,您可以使用杂注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;
ep6jt1vc5#
@Tony是正确的,每个查询都必须在自己的会话中运行才能并行运行。您使用的是什么工具?在PL/SQL Developer中,我可以打开一个DB连接,然后在该连接中打开多个会话,并“并行”运行多个查询-我确实必须手动执行每个查询,但如果每个查询都需要很长时间,也许这样就可以满足您的需要。或者类似的东西在你使用的任何工具中。
nkkqxpd96#
因此,最简单的解决方案是使用Oracle软件的其余部分附带的SQL Plus。这是一个笨重的工具,但它能满足我的需要,同时我可以自由地使用SQL Developer进行其他查询。
6条答案
按热度按时间qnakjoqk1#
按下ctrl+shift+N将打开一个新的非共享工作表,可以并行运行查询。在这种情况下,您必须在每个选项卡中粘贴一个查询,然后手动运行它们,但如果只是测试几个查询,它会很方便。
pcww981p2#
在SqlDeveloper首选项中:
Tools > Preferences > Database > Worksheet
检查New Worksheet to use unshared connction
的选项。这将允许您同时执行多个查询,每个选项卡中的每个查询。请参阅screenshot。xkrw2x1b3#
不需要,每个查询需要单独的会话。
qlvxas9a4#
假设您喜欢冒险,您可以使用杂注AUTONOMOUS_TRANSACTION从一个脚本运行多个“线程”。例如:
ep6jt1vc5#
@Tony是正确的,每个查询都必须在自己的会话中运行才能并行运行。您使用的是什么工具?在PL/SQL Developer中,我可以打开一个DB连接,然后在该连接中打开多个会话,并“并行”运行多个查询-我确实必须手动执行每个查询,但如果每个查询都需要很长时间,也许这样就可以满足您的需要。或者类似的东西在你使用的任何工具中。
nkkqxpd96#
因此,最简单的解决方案是使用Oracle软件的其余部分附带的SQL Plus。这是一个笨重的工具,但它能满足我的需要,同时我可以自由地使用SQL Developer进行其他查询。