35

我需要从我们的 oracle 数据库中检索相当多的数据,为此我需要运行 20 多个查询。有没有办法在同一个连接上一次运行多个查询?

我尝试使用 / 来分隔查询,但这只是打开了多个选项卡,查询仍然按顺序运行,尽管我不必一一启动它们。

4

6 回答 6

57

ctrl++将打开一个新的非共享工作表,shiftN工作表可以并行运行查询。在这种情况下,您必须在每个选项卡中粘贴一个查询并手动运行它们,但是在仅测试几个查询时它很方便。

于 2012-10-30T12:47:35.930 回答
18

在 SqlDeveloper 首选项Tools > Preferences > Database > Worksheet中:选中New Worksheet to use unshared connction. 这将允许您在每个选项卡中同时执行多个查询。也请看截图

于 2017-02-23T15:48:26.587 回答
1

不,每个查询都需要一个单独的会话。

于 2010-07-13T14:09:52.137 回答
0

@Tony 是正确的,每个查询必须在它自己的会话中运行才能并行运行。你用的是什么工具?在 PL/SQL Developer 中,我可以打开一个数据库连接,然后在该连接中打开多个会话并“并行”运行多个查询——我必须手动执行每个查询,但如果它们都需要很长时间,也许那会为您提供所需的东西,或者在您使用的任何工具中提供类似的东西。

于 2010-07-13T16:47:49.790 回答
0

假设您喜欢危险地生活,您可以使用编译指示 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;
于 2010-08-18T14:02:55.510 回答
-2

因此,最简单的解决方案是使用 Oracle 软件的其余部分附带的 SQL Plus。这是一个笨重的工具,但可以满足我的需要,同时我可以自由地将 SQL Developer 用于其他查询。

于 2010-07-28T13:45:56.577 回答