2010-07-13 313 views
22

Necesito recuperar bastantes datos de nuestra base de datos Oracle y, para hacerlo, necesito ejecutar más de 20 consultas. ¿Hay alguna manera de ejecutar más de una consulta a la vez en la misma conexión?Ejecutar 2 consultas al mismo tiempo en Oracle SQL Developer?

Intenté usar/para separar las consultas, pero eso simplemente abre varias pestañas y las consultas aún se ejecutan secuencialmente, aunque no tengo que iniciarlas una por una.

+0

¿Por qué no puede abrir múltiples conexiones/sesiones? –

+0

cuando trato de ejecutar consultas en diferentes conexiones, se detiene y ejecuta el nuevo que he especificado ... el primero no termina :( – Sologoub

+0

¿Qué versión de SQL Developer estás usando? Con 2.1.1 puedo abrir dos conexiones y sentencias de ejecución en cada una al mismo tiempo. Si la pestaña tiene una tilde seguida de un número, la ventana es parte de la misma conexión que otra ventana. Para versiones anteriores de SQL Developer, podría abrir varias instancias de la aplicación –

Respuesta

-1

Así que la solución más simple para esto era usar SQL Plus que venía con el resto del software de Oracle. Es una herramienta poco común, pero hace lo que necesitaba, mientras que soy libre de usar SQL Developer para otras consultas.

+1

Si tienes un gran resultado SQLPlus no es la herramienta correcta. – changeme

1

No, necesitará una sesión por consulta.

+1

Objeción semántica: técnicamente, necesitarás una * sesión * por consulta. Puedes tener varias sesiones por conexión. – DCookie

+0

Corregido, ¡gracias! –

0

@Tony es correcto, cada consulta debe ejecutarse en su propia sesión para ejecutarse en paralelo. ¿Qué herramienta estás usando? En PL/SQL Developer, puedo abrir una conexión de base de datos, luego abrir varias sesiones dentro de esa conexión y ejecutar varias consultas en "paralelo" - Debo ejecutar cada una de forma manual, pero si cada una toma mucho tiempo, quizás eso conseguir lo que necesita, o algo similar en cualquier herramienta que está utilizando.

+0

Gracias! Estoy usando el Oracle SQL Developer – Sologoub

0

Suponiendo que le gusta vivir peligrosamente, puede ejecutar varios "hilos" desde un script utilizando el pragma AUTONOMOUS_TRANSACTION. Por ejemplo:

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

Las preguntas se trataban de ejecutar 'al mismo tiempo'. Sus tres procedimientos ca lls se ejecutará secuencialmente. –

34

presionar ctrl +cambio + N se abrirá una nueva hoja de cálculo no compartido que puede ejecutar consultas en paralelo. En ese caso, tiene que pegar una consulta en cada pestaña y ejecutarlas manualmente, pero es útil cuando solo prueba algunas consultas.

+1

ALT + F10 parece funcionar también – msmucker0527

+0

Creo que esa es la respuesta más correcta. Oracle SQL Developer compartirá conexiones de forma predeterminada [(documentación)] (http://docs.oracle.com/cd/B28359_01/appdev.111/b31695/intro.htm#CHDHIFGJ). Un truco es tener la misma conexión almacenada con diferentes nombres. La hoja de cálculo no compartida permite que las consultas funcionen utilizando la misma información de conexión pero utilizando una conexión separada. –

3

En las preferencias de SqlDeveloper: Tools > Preferences > Database > Worksheet, marque la opción New Worksheet to use unshared connction. Esto le permitirá ejecutar múltiples consultas al mismo tiempo, cada una en cada pestaña. Ver también screenshot.

Cuestiones relacionadas