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

Administration Oracle Discussion :

Trouver l'espace disque utilisé dans le tablespace UNDO par une requête précise [11gR2]


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Trouver l'espace disque utilisé dans le tablespace UNDO par une requête précise
    Bonjour tout le monde,

    J'ai besoin de connaître précisément l'espace disque utilisé par une requête dans le TBS UNDO.

    Je peux avoir l'espace du TBS UNDO avec la requête suivante mais ce n'est pas suffisant, il me manque la requête dans DBA_SEGMENTS.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT SUM(BYTES)/(1024*1024) AS "TAILLE EN MO USED" FROM DBA_SEGMENTS WHERE TABLESPACE_NAME = 'UNDOTBS';
     
    TAILLE EN MO USED
    -----------------
           15529.0625
    1 row selected.
    Si je regarde les vues V$UNDOSTAT et V$SQL j'ai des choses sympa MAIS je n'arrive pas à trouver précisément ma requête car dans V$UNDOSTAT c'est la plus grosse requête sur une période de 10 minutes qui est enregistrée et pas TOUTES les requêtes SQL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select begin_time, end_time, undoblks, TXNCOUNT, sql_text from v$undostat u JOIN v$sql s ON (u.MAXQUERYID = s.SQL_ID) where rownum < 5 order by u.begin_time desc ;
     
    BEGIN_TIME	END_TIME	UNDOBLKS	TXNCOUNT	SQL_TEXT
    03/29/2016 10:17:14	03/29/2016 10:22:05	574	10 641	select 1 from obj$ where name='DBA_QUEUE_SCHEDULES'
    03/29/2016 10:07:14	03/29/2016 10:17:14	2 283	33 746	select 1 from obj$ where name='DBA_QUEUE_SCHEDULES'

    Avec l'ordre SQL suivant j'arrive à avoir la taille du TBS UNDO occupée par une session mais à nouveau je n'arrive pas à isoler une requête précise.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    SELECT         S.USERNAME AS "SESSION USERNAME", 
    S.OSUSER AS "OS USERNAME", 
    S.SCHEMANAME AS "SCHEMA",
    S.MACHINE AS "MACHINE",
    S.PROGRAM AS "PROGRAMME", 
     (T.USED_UBLK * (select BLOCK_SIZE from dba_tablespaces where tablespace_name = 'UNDOTBS'))/(1024*1024) AS "Taille UNDOTBS used Mo"
    FROM V$SESSION S, V$TRANSACTION T
    WHERE S.SADDR = T.SES_ADDR
    ORDER BY "Taille UNDOTBS used Mo" DESC;
     
    SESSION USERNAME	OS USERNAME	SCHEMA	MACHINE	PROGRAMME	Taille UNDOTBS used Mo
    ACCBATCH	stisyse	ACCBATCH	condate	db_bivc_acc_2s.exe@condate (TNS V1-V3)	0,1719
    IR	stisyse	IR	condate	sqlplus@condate (TNS V1-V3)	0,0156
    SYS	oracle	SYS	ngcuatdb03	sqlplus@ngcuatdb03 (TNS V1-V3)	0,0078
    UVM_BDR	oraexplo	UVM_BDR	ngcuatdb03	oracle@ngcuatdb03 (J000)	0,0078
    ACCBATCH	stisyse	ACCBATCH	condate	de_confirmation_acc_2s.exe@condate (TNS V1-V3)	0,0078
    ACCBATCH	stisyse	ACCBATCH	condate	sqlplus@condate (TNS V1-V3)	0,0078

    Donc si vous savez comment faire le lien entre une requête SQL et l'espace disque pris dans le TBS UNDO je vous en serai très reconnaissant.

  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
    Personne n'a d'idée?
    Allez quoi, me laissez pas tomber

  3. #3
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2015
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 49
    Par défaut
    Je n'ai pas de réponse définitive a votre question, mais juste peut etre une piste : Dans v$session (que vous joignez dans la requête precedante a v$transaction en utilisant S.saddr) ,

    v$session
    TADDR VARCHAR2(8) Address of the transaction state object

    V$TRANSACTION
    ADDR RAW(4 | 8) Address of the transaction state object

    on peut voir ou bien la requête en cours
    SQL_ADDRESS RAW(4 | 8) Used with SQL_HASH_VALUE to identify the SQL statement that is currently being executed
    SQL_HASH_VALUE NUMBER Used with SQL_ADDRESS to identify the SQL statement that is currently being executed
    SQL_ID VARCHAR2(13) SQL identifier of the SQL statement that is currently being executed

    Ou juste celle d'avant :
    PREV_SQL_ADDR RAW(4 | 8) Used with PREV_HASH_VALUE to identify the last SQL statement executed
    PREV_HASH_VALUE NUMBER Used with SQL_HASH_VALUE to identify the last SQL statement executed
    PREV_SQL_ID VARCHAR2(13) SQL identifier of the last SQL statement executed
    PREV_CHILD_NUMBER NUMBER Child number of the last SQL statement executed
    PREV_EXEC_START DATE SQL execution start of the last executed SQL statement
    PREV_EXEC_ID NUMBER SQL execution identifier of the last executed SQL statement

  4. #4
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2015
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 49
    Par défaut
    Et juste pour revenir a votre insatisfaction a votre première requête :
    " Si je regarde les vues V$UNDOSTAT et V$SQL j'ai des choses sympa MAIS je n'arrive pas à trouver précisément ma requête car dans V$UNDOSTAT c'est la plus grosse requête sur une période de 10 minutes qui est enregistrée et pas TOUTES les requêtes SQL. " : c'est vrai , mais je pense que cet échantillonnage est suffisant pour voir les requêtes les plus consommatrices d'undo, je ne pense pas que ce genre de requête va disparaitre en une seconde , donc il me semble bien que les résultats seront représentatifs des plus grosses requêtes consommatrices.

    Deuxième remarque sur votre observation : " Avec l'ordre SQL suivant j'arrive à avoir la taille du TBS UNDO occupée par une session mais à nouveau je n'arrive pas à isoler une requête précise. " : Vous pouvez ajouter le sqlid de cette session et voir la requête en cours qui classe cette session comme plus grosse consommatrice undo

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/06/2013, 14h05
  2. [Admin] [BOXI] Espace disque insuffisant dans le File Repository Server
    Par samy37 dans le forum Administration-Migration
    Réponses: 4
    Dernier message: 08/11/2011, 13h09
  3. ~1 Go espace disque utilisé par Nvidia drivers
    Par timoun dans le forum Windows XP
    Réponses: 5
    Dernier message: 08/12/2010, 18h32
  4. espace mémoire utilisé dans le workspace
    Par bakaratoun dans le forum MATLAB
    Réponses: 1
    Dernier message: 26/01/2010, 16h46
  5. Obtention de l'espace disque utilisé
    Par pjmorce dans le forum Ruby
    Réponses: 6
    Dernier message: 09/07/2008, 16h58

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