J'ai besoin de récupérer pas mal de données de notre base de données Oracle. Pour ce faire, je dois exécuter plus de 20 requêtes. Est-il possible d'exécuter plus d'une requête à la fois 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 s'exécutent toujours de manière séquentielle, bien que je n'ai pas à les démarrer un par un.
Прессованиеctrl+shift+Nоткроет новый общий лист, который может выполнять запросы параллельно. В о о о en Français.
Dans les préférences de SqlDeveloper: Tools > Preferences > Database > Worksheet
, cochez l'option pour New Worksheet to use unshared connction
. Cela vous permettra d'exécuter plusieurs requêtes en même temps, chacune dans chaque onglet. Voir une capture d'écran aussi.
Non, vous aurez besoin d'une session distincte par requête.
En supposant que vous aimez vivre dangereusement, vous pouvez exécuter plusieurs "threads" à partir d'un script à l'aide du 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;
@ Tony est correct, chaque requête doit être exécutée dans sa propre session pour s'exécuter en parallèle. Quel outil utilisez-vous? Dans PL/SQL Developer, je peux ouvrir une connexion à une base de données, puis ouvrir plusieurs sessions au sein de cette connexion et exécuter plusieurs requêtes en "parallèle". vous fournit ce dont vous avez besoin, ou quelque chose de similaire, quel que soit l'outil que vous utilisez.