2010-07-13 62 views
22

Ich muss ziemlich viele Daten aus unserer Oracle DB abrufen und dazu muss ich mehr als 20 Abfragen ausführen. Gibt es eine Möglichkeit, mehrere Abfragen gleichzeitig auf derselben Verbindung auszuführen?2 Abfragen gleichzeitig auf Oracle SQL Developer ausführen?

Ich habe versucht,/mit den Abfragen trennen, aber das öffnet einfach mehrere Tabs und Abfragen weiterhin sequenziell, obwohl ich sie nicht nacheinander starten müssen.

+0

Warum können Sie nicht mehrere Verbindungen/Sitzungen öffnen? –

+0

Wenn ich versuche, Abfragen auf verschiedenen Verbindungen auszuführen, stoppt es und führt das neue, das ich angegeben habe ... das erste beendet nicht :( – Sologoub

+0

Welche Version von SQL Developer verwenden Sie? Mit 2.1.1 kann ich zwei öffnen Wenn die Registerkarte eine Tilde gefolgt von einer Zahl enthält, ist das Fenster Teil derselben Verbindung wie ein anderes Fenster.Für frühere Versionen von SQL Developer können Sie mehrere Instanzen der Anwendung öffnen –

Antwort

-1

Die einfachste Lösung war die Verwendung von SQL Plus, das mit dem Rest der Oracle-Software geliefert wurde. Es ist ein klobiges Werkzeug, aber tut, was ich brauchte, während ich SQL Developer für andere Abfragen frei verwenden kann.

+1

Wenn Sie eine sehr große haben Ergebnis SQLPlus ist kein richtiges Werkzeug – changeme

1

Nein, Sie benötigen eine separate Sitzung pro Abfrage.

+1

Semantic Quibble: technisch, Sie brauchen eine separate * Sitzung * pro Abfrage. Sie können mehrere Sitzungen pro Verbindung haben. – DCookie

+0

Korrigiert, danke! –

0

@Tony ist korrekt, jede Abfrage muss in einer eigenen Sitzung ausgeführt werden, um parallel ausgeführt zu werden. Welches Werkzeug benutzen Sie? In PL/SQL Developer kann ich eine DB-Verbindung öffnen, dann mehrere Sitzungen innerhalb dieser Verbindung öffnen und mehrere Abfragen in "parallel" ausführen - ich muss jede einzelne manuell ausführen, aber wenn sie jeweils eine lange Zeit benötigen, wird das vielleicht bekommen Sie, was Sie brauchen, oder etwas Ähnliches in welchem ​​Werkzeug Sie es verwenden.

+0

Danke! Ich benutze die kostenlose Oracle SQL Developer – Sologoub

0

Angenommen, Sie möchten gefährlich leben, können Sie mehrere "Threads" aus einem Skript mit dem Pragma AUTONOMOUS_TRANSACTION ausführen. Zum Beispiel:

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

Bei den Fragen ging es darum, 'zur gleichen Zeit 'zu laufen lls werden nacheinander ausgeführt. –

34

Pressing ctrl + Verschiebung + N wird ein neues ungeteiltes Arbeitsblatt öffnen, das Abfragen parallel ausgeführt werden kann. In diesem Fall müssen Sie eine Abfrage in jede Registerkarte einfügen und sie manuell ausführen, aber es ist praktisch, wenn Sie nur einige Abfragen testen.

+1

ALT + F10 scheint auch zu funktionieren – msmucker0527

+0

Ich denke, das ist die richtigste Antwort. Oracle SQL Developer teilt standardmäßig Verbindungen [(Dokumentation)] (http://docs.oracle.com/cd/B28359_01/appdev.111/b31695/intro.htm#CHDHIFGJ). Ein Hack soll die gleiche Verbindung mit verschiedenen Namen gespeichert haben. Ein nicht freigegebenes Arbeitsblatt ermöglicht, dass Abfragen mit denselben Verbindungsinformationen arbeiten, aber eine separate Verbindung verwenden. –

3

In SqlDeveloper Einstellungen: Tools > Preferences > Database > Worksheet überprüfen Sie die Option für New Worksheet to use unshared connction. Auf diese Weise können Sie mehrere Abfragen gleichzeitig auf jeder Registerkarte ausführen. Siehe auch eine screenshot.

Verwandte Themen