Lancer 2 requêtes en même temps sur Oracle SQL Developer?

j'ai besoin de récupérer Pas mal de données de notre base de données oracle et pour ce faire, j'ai besoin d'exécuter plus de 20 requêtes. Est-il possible d'exécuter plusieurs requêtes en même temps sur la même connexion?

j'ai essayé d'utiliser / pour séparer les requêtes, mais cela ouvre simplement plusieurs onglets et les requêtes tournent toujours séquentiellement, bien que je n'ai pas à les Démarrer un par un.

23
demandé sur Sologoub 2010-07-13 17:59:39

6 réponses

appuyer sur ctrl+maj+ N ouvrira une nouvelle feuille de travail non partagée qui peut exécuter des requêtes en parallèle. Dans ce cas, vous devez coller une requête dans chaque onglet et de les exécuter manuellement, mais c'est pratique de simplement tester quelques questions.

41
répondu wds 2012-10-30 13:48:30

dans les préférences SqlDeveloper:Tools > Preferences > Database > Worksheet cochez l'option New Worksheet to use unshared connction. Cela vous permettra d'exécuter plusieurs requêtes en même temps, de chaque dans chaque onglet. Voir un capture d'écran trop.

4
répondu Edayan 2017-03-28 10:39:21

Non, vous aurez besoin d'une session séparée par requête.

1
répondu Tony Andrews 2010-07-13 14:24:44

@Tony est correct, chaque requête doit être exécuté dans sa propre session pour s'exécuter en parallèle. Quel outil utilisez-vous? Dans le développeur PL/SQL, je peux ouvrir une connexion DB, puis ouvrir plusieurs sessions à l'intérieur de cette connexion et exécuter plusieurs requêtes en "parallèle" - je dois exécuter chacune manuellement, mais si elles prennent chacune beaucoup de temps, peut-être que cela vous donnera ce dont vous avez besoin, ou quelque chose de similaire dans n'importe quel outil que vous utilisez.

0
répondu DCookie 2010-07-13 16:47:49

en supposant que vous aimez vivre dangereusement, vous pouvez exécuter plusieurs "threads" à partir d'un script en utilisant le pragma AUTONOMOUS_TRANSACTION. Par exemple:

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
répondu Taldaugion 2010-08-18 14:02:55

donc la solution la plus simple à cela était D'utiliser SQL Plus qui est venu avec le reste du logiciel Oracle. C'est un outil clunky, mais fait ce dont j'avais besoin, pendant que je suis libre D'utiliser SQL Developer pour d'autres requêtes.

-1
répondu Sologoub 2010-07-28 13:45:56