2010-07-13 24 views
22

Ho bisogno di recuperare un bel po 'di dati dal nostro DB Oracle e per farlo ho bisogno di eseguire più di 20 query. C'è un modo per eseguire più di una query alla volta sulla stessa connessione?Esegui 2 query contemporaneamente su Oracle SQL Developer?

Ho provato a utilizzare/per separare le query, ma questo apre semplicemente più schede e le query vengono eseguite in sequenza, sebbene non sia necessario avviarle una alla volta.

+0

Perché non riesci ad aprire più connessioni/sessioni? –

+0

quando provo a eseguire query su connessioni diverse, si ferma e esegue quello nuovo che ho specificato ... il primo non termina :( – Sologoub

+0

Quale versione di SQL Developer stai usando? Con 2.1.1 Posso aprire due connessioni ed eseguire istruzioni in ciascuna allo stesso tempo.Se la scheda ha una tilde seguita da un numero, la finestra fa parte della stessa connessione di un'altra finestra.Per le versioni precedenti di SQL Developer è possibile aprire più istanze dell'applicazione –

risposta

-1

Quindi la soluzione più semplice era utilizzare SQL Plus fornito con il resto del software Oracle. È uno strumento goffo, ma fa quello di cui avevo bisogno, mentre sono libero di usare SQL Developer per altre query.

+1

gratuito Se si dispone di un grande risultato SQLPlus non è lo strumento giusto. – changeme

1

No, sarà necessaria una sessione separata per query.

+1

Semantic quibble: tecnicamente, è necessaria una sessione * separata * per query È possibile avere più sessioni per connessione – DCookie

+0

Corretto, grazie –

0

@Tony è corretto, ogni query deve essere eseguita nella propria sessione per essere eseguita in parallelo. Che strumento stai usando? In PL/SQL Developer, posso aprire una connessione DB, quindi aprire più sessioni all'interno di quella connessione ed eseguire diverse query in "parallelo" - Devo eseguire ognuna manualmente, ma se ognuna richiede molto tempo, forse sarà così prendi quello che ti serve, o qualcosa di simile in qualunque strumento tu stia usando.

+0

Grazie! Sto usando Oracle Oracle Developer – Sologoub

0

Supponendo che ti piaccia vivere pericolosamente, puoi eseguire più "thread" da uno script utilizzando il pragma AUTONOMOUS_TRANSACTION. Per esempio:

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

Le domande riguardavano l'esecuzione 'allo stesso tempo. lls verrà eseguito in sequenza. –

34

Premendo Ctrl +spostamento + N si aprirà un nuovo foglio di lavoro non condiviso in grado di eseguire query in parallelo. In tal caso, è necessario incollare una query in ogni scheda ed eseguirli manualmente, ma è utile quando si testano alcune query.

+1

Anche ALT + F10 sembra funzionare – msmucker0527

+0

Penso che sia la risposta più corretta. Oracle SQL Developer condividerà le connessioni per impostazione predefinita [(documentazione)] (http://docs.oracle.com/cd/B28359_01/appdev.111/b31695/intro.htm#CHDHIFGJ). Uno hack è quello di avere la stessa connessione memorizzata con nomi diversi. Un foglio di lavoro non condiviso consente alle query di funzionare utilizzando le stesse informazioni di connessione ma utilizzando una connessione separata. –

3

Nelle preferenze SqlDeveloper: Tools > Preferences > Database > Worksheet selezionare l'opzione per New Worksheet to use unshared connction. Ciò ti consentirà di eseguire più query contemporaneamente, ciascuna in ciascuna scheda. Vedi anche screenshot.

Problemi correlati