IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sql Developer Oracle Discussion :

Arrêter une requête en cours d'exécution [11g]


Sujet :

Sql Developer Oracle

  1. #1
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut Arrêter une requête en cours d'exécution
    Bonjour,

    utilisant sqldeveloper, j'aimerais parfois arrêter l’exécution d'une requête, pour effectuer d'autres traitement, mais pas moyen de trouver comment arrêter la requête en cours d’exécution.

    Sur l'image jointe, j'ai vu qu'il fallait aller dans la partie session et il y avait une option pour tuer la session, mais je ne trouve pas la partie session, pourtant j'utilise la dernière version de sqldeveloper, mais pas moyen de le trouver .

    Comment faire pour tuer l’exécution d'une instruction en cours ?

    Merci !

  2. #2
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Perso je n'utilise pas SQL Developer, c'est un outil de développeurs et peu de DBA.

    Dans la fenêtre de saisie des ordres SQL, tu peux faire :
    ALTER SYSTEM KILL SESSION ...
    https://oracle-base.com/articles/mis...racle-sessions

    Mais, si tu es en 18c, il y a mieux : plus la peine de killer la session mais on peut juste annuler un ordre SQL avec :
    ALTER SYSTEM CANCEL SQL ...
    https://oracle-base.com/articles/18c...cancel-sql-18c

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 241
    Par défaut
    Dans SQLDevelopper, j'ai un panneau 'RAPPORTS' ; je ne sais pas somment l'activer ou le désactiver.
    Dans ce panneau rapport, je vais dans 'Rapports de dictionnaire de données", puis dans "Administration de base de données" puis dans "Sessions" et à nouveau dans "Sessions".
    Et comme j'ai tous les privilèges voulus , je peux killer telle ou telle session.

    Si tu n'as pas les privilèges en question, normalement, tu n'as pas accès à tout ça.

  4. #4
    Membre Expert
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Par défaut
    Si tu en as les droits, exécutes la commande suivante puis tu copies-colles la dernière colonne et tu l'exécutes pour killer la session concernée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT 
      s.status, s.sid, s.serial#, p.spid,
      s.username, s.module, s.PROGRAM, s.OSUSER, s.machine,
      TO_CHAR(s.sql_exec_start,'DD/MM/YYYY HH24:MI:SS') AS SQL_start,  
      'exec sys.kill_session('||s.SID||','||s.serial#||','||s.inst_id||');' AS Kill_Command
    FROM   gv$session s
      JOIN gv$process p ON p.addr = s.paddr AND p.inst_id = s.inst_id
    WHERE  s.type != 'BACKGROUND' 
    AND s.username NOT LIKE 'SYS%'
    ORDER BY s.status, s.username;

  5. #5
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    Citation Envoyé par Ikebukuro Voir le message
    Perso je n'utilise pas SQL Developer, c'est un outil de développeurs et peu de DBA.

    Dans la fenêtre de saisie des ordres SQL, tu peux faire :
    ALTER SYSTEM KILL SESSION ...
    https://oracle-base.com/articles/mis...racle-sessions

    Mais, si tu es en 18c, il y a mieux : plus la peine de killer la session mais on peut juste annuler un ordre SQL avec :
    ALTER SYSTEM CANCEL SQL ...
    https://oracle-base.com/articles/18c...cancel-sql-18c
    merci beaucoup je vais regarder ça

  6. #6
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Dans SQLDevelopper, j'ai un panneau 'RAPPORTS' ; je ne sais pas somment l'activer ou le désactiver.
    Dans ce panneau rapport, je vais dans 'Rapports de dictionnaire de données", puis dans "Administration de base de données" puis dans "Sessions" et à nouveau dans "Sessions".
    Et comme j'ai tous les privilèges voulus , je peux killer telle ou telle session.

    Si tu n'as pas les privilèges en question, normalement, tu n'as pas accès à tout ça.
    Apparemment j'ai accès au panneau rapports->sessions etc..je vais tester ça , merci .

  7. #7
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    Citation Envoyé par Ikebukuro Voir le message
    Perso je n'utilise pas SQL Developer, c'est un outil de développeurs et peu de DBA.
    Moi on va dire que j'ai pas trop eu le choix mais pour un dba, tu me conseillerais quoi comme logiciel ? Beaucoup parle de TOAD, je sais que je l'avais utilisé auparavant, mais existe t-il d'autres logiciels ?

    merci

  8. #8
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    En tant que DBA Oracle, l'outil à utiliser est le Cloud Control, c'est l'outil officiel d'Oracle pour administrer une base.
    Toad est bien mais c'est un produit tiers.

  9. #9
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    Quand j'essaye de voir un peu les session, il me met toujours ce message d'erreur, c'est étrange, est ce normal ?

  10. #10
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Et si tu fais un desc v$session dans la fenêtre de SQL Developer qui est l'équivalent de SQL*Plus?

    Visiblement ton user n'a pas les droits d'accès aux données du dictionnaire de données.
    Donne-lui le privilège "SELECT ANY DICTIONARY" ou bien le rôle "SELECT_CATALOG_ROLE".

  11. #11
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    Bonjour,

    Visiblement ton user n'a pas les droits d'accès aux données du dictionnaire de données.
    Donne-lui le privilège "SELECT ANY DICTIONARY" ou bien le rôle "SELECT_CATALOG_ROLE".
    Alors là je ne sais pas comment m'y prendre, pourriez vous m'expliquer comment procéder ?

  12. #12
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Il faut que tu te connectes à ta base avec un user assez puissant (idéalement SYS) et faire un GRANT.
    Ca te parle pas? Tu es DBA, développeur?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Unix# sqlplus / as sysdba ==> si ton user Unix est dans le groupe dba
     
    SQL> grant select any dictionary to TOTO;
    ou bien
    SQL> grant select_catalog_role to TOTO;

  13. #13
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    Merci pour ton retour Ikebukuro, je vais regarder cela.

    Pour répondre à ta question je suis développeur et ça devient royalement agaçant, quand je vois une requête qui me dit " tache annulé" et que la barre de progression ne veut pas disparaitre pendant une demi heure, je suis obligé de fermer à l'arrache sqldeveloper ( en fermant le processus) et en ouvrir un autre ...

    Mais je comprends, via sqldeveloper techniquement tant qu'il a pas fini son instruction, je peux en faire aucune autre...

  14. #14
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Citation Envoyé par android59 Voir le message
    Mais je comprends, via sqldeveloper techniquement tant qu'il a pas fini son instruction, je peux en faire aucune autre...
    Et sous SQL Developer tu ne peux pas ouvrir plusieurs sessions ou fenêtre SQL pour le même user? C'est étonnant que tu doives attendre la fin d'un ordre.

  15. #15
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    Bonjour,

    je me suis renseigné et en effet, je suis limité niveau droit, je ne peux pas killer une session ( ce qui est bien dommage).


    Si bien sûr, en fait sous sqldeveloper, j'ai plusieurs connexion, mais je ne peux exécuter qu'une requête à la fois, par connexion, sinon j'ai le message " la connexion est occupé , reessayer ou abandonner", du coup, lorsque je fais par exemple 2 ou 2 requête à la fois, je suis obligé d'ouvrir plusieurs sqldeveloper, si je veux faire plusieurs requêtes, pour une même base, ce qui est rasoir en somme, car parfois j'ai la barre de tâche qui va et vient quand j'annule l'execution de la requête et une fois pendant 35mn j'ai tjr l'instruction tache annulé " du coup j'suis obligé d'ouvrir le gestionnaire de tache et de rouvrir sqldeveloper, en un mot je suis "limité" mais c'est comme ça et j'y peux rien ( ce qui est agaçant lol).

    y a t-il une explication à cela, pourquoi il me met pendant autant de temps " tache annulé" et rien ne se passe ? Enncore heureux qu'il ne me le fasse pas tout le temps.
    J'ai entendu parler d'un système de cache, vider le cache pour que l'execution des requêtes se fasse plus rapide, est ce vrai ?
    Merci !

  16. #16
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 976
    Par défaut
    finalement je me contenterais d'arrêter le processus, étant limiter en droit, merci

  17. #17
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par android59 Voir le message
    Si bien sûr, en fait sous sqldeveloper, j'ai plusieurs connexion, mais je ne peux exécuter qu'une requête à la fois, par connexion, sinon j'ai le message " la connexion est occupé , reessayer ou abandonner", du coup, lorsque je fais par exemple 2 ou 2 requête à la fois, je suis obligé d'ouvrir plusieurs sqldeveloper
    Vous pouvez ouvrir plusieurs fenêtres SQL qui auront chacune leur propre session.
    De mémoire il s'agit de SQL partagé (je n'ai pas l'outil sous les yeux).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Arrêter une fonction en cours d'exécution
    Par locus dans le forum C++/CLI
    Réponses: 4
    Dernier message: 28/11/2011, 20h09
  2. Comment masquer une application en cours d'exécution
    Par wajdiisi2007 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/08/2007, 01h45
  3. Réponses: 1
    Dernier message: 25/06/2007, 10h35
  4. arrêt d'une requete en cours d'exécution
    Par fradeo dans le forum DB2
    Réponses: 8
    Dernier message: 21/06/2007, 11h44
  5. Arrêter une requête en cours
    Par Krapulax dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 09/09/2004, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo