Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1587 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

   [Oracle] question sur vues dba_*

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Oracle] question sur vues dba_*

n°1605420
ph75
Posté le 28-08-2007 à 17:26:39  profilanswer
 

Je souhaiterais comprendre pourquoi les 3 requêtes suivantes ne renvoient pas le même résultat :
 
select tablespace_name from dba_tablespaces;
select distinct(tablespace_name) from dba_free_space;
select distinct(tablespace_name) from dba_extents;
 
En effet, si la vue dba_tablespaces contient (heureusement ...) la liste complète des tablespaces, il se trouve que pour les 2 autres vues, souvent dans mes instances il manque un tablespace.
Le problème est que j'ai des scripts de supervision (récupérés sur le Net) qui se basent dans leurs jointures sur dba_free_space ou dba_extents pour sortir des états de volumétrie de tablespaces, et du coup un tablespace full s'est retrouvé non détecté.
Y a t'il un moyen pour forcer Oracle à ce que les vues dba_free_space et dba_extents soient complètes au niveau des tablespaces ?


Message édité par ph75 le 28-08-2007 à 17:29:53
mood
Publicité
Posté le 28-08-2007 à 17:26:39  profilanswer
 

n°1605557
couak
Posté le 29-08-2007 à 08:56:20  profilanswer
 

bon pour commencer quand on a un doute sur une vue, on regarde le dictionnaire ;)

Code :
  1. SQL> select * from dictionary where table_name in ('DBA_TABLESPACES', 'DBA_FREE_SPACE', 'DBA_EXTENTS');
  2. TABLE_NAME      COMMENTS
  3. --------------- --------------------------------------------------
  4. DBA_EXTENTS     Extents comprising all segments in the database
  5. DBA_FREE_SPACE  Free extents in all tablespaces
  6. DBA_TABLESPACES Description of all tablespaces


 
pour ce qui est de ton problème, les vues dba_free_space et dba_extents ne prennent pas en compte les tablespaces de type temporaire
L'espace utilisé dedans varie très souvent, donc à moins de vouloir absolument récupérer une alerte toutes les 30 sec parce qu'un gugusse a lancer une requête avec pleins de tris, il n'y a pas d'intérêt à superviser de manière pro-active la taille d'un tablespace temporaire
La seule chose à faire dessus, c'est de dimensionner correctement la taille du tablespace temporaire si trop souvent les requêtes échouent par manque d'espace temporaire...
 
t'utilises quoi comme scripts de supervision ?

n°1605779
ph75
Posté le 29-08-2007 à 14:09:20  profilanswer
 

couak a écrit :

pour ce qui est de ton problème, les vues dba_free_space et dba_extents ne prennent pas en compte les tablespaces de type temporaire

Un des problèmes que j'ai eu était sur un TS   non temporaire et non système, avec une requête utilisant dba_free_space.
L'autre problème était effectivement sur le TS TMP avec une requête utilisant dba_extents -> OK.
 
Pour la requête utilisant dba_free_space (c'est extrait d'un script de supervision Big Brother: bb-moracle.sh) :
 

select TABLESPACE , TAILLE ,TAILLEMAX, 100-((FREE+TAILLEMAX-TAILLE)/TAILLEMAX*100) "USED (%)" from
(
select  TABLESPACE , sum("SIZE (M)" ) "TAILLE", sum("MAXSIZE (M)" ) "TAILLEMAX", "FREE" from
(
select  d.tablespace_name "TABLESPACE",
sum(d.bytes)/1048576 "SIZE (M)",
FREESPCE "FREE",
sum(d.maxbytes)/1048576 "MAXSIZE (M)",
round(((sum(d.bytes)/1048576-FREESPCE)/(sum(d.maxbytes)/1048576)*100),2) "MAXUSED"
FROM dba_data_files  d,
( SELECT
round(sum(f.bytes)/1048576,2) FREESPCE,
f.tablespace_name Tablespc
FROM dba_free_space f
GROUP BY f.tablespace_name)
WHERE d.tablespace_name = Tablespc
and d.autoextensible = 'YES'
group by d.tablespace_name,FREESPCE
union
select  d.tablespace_name,
sum(d.bytes)/1048576,
FREESPCE,
sum(d.bytes)/1048576,
100 -(round((FREESPCE/(sum(d.bytes)/1048576))*100))
FROM dba_data_files  d,
( SELECT
round(sum(f.bytes)/1048576,2) FREESPCE,
f.tablespace_name Tablespc
FROM dba_free_space f
GROUP BY f.tablespace_name)
WHERE d.tablespace_name = Tablespc
and d.autoextensible = 'NO'
group by d.tablespace_name,FREESPCE
order by 1 desc
)
group by tablespace, free
) order by TABLESPACE;
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

   [Oracle] question sur vues dba_*

 

Sujets relatifs
question sur les multi core et c++Petite question de Debutant
Question sur le pid d'un script[c] Question sur une boucle do...while
Tri de réponses chiffre/caractère [resolu][shell script] Question sur l'init d'une variable
[C++] question facileQuestion cookie
[MCD] Question au sujet d'une contrainteQuestion sur les gridview
Plus de sujets relatifs à : [Oracle] question sur vues dba_*


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR