Oracle Database/Quelques requêtes utiles/Dictionnaire de données

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche


Le dictionnaire de données Oracle est un ensemble de tables système, qui contiennent les informations de fonctionnement de la base de données comme :

  • Les utilisateurs
  • Les tables
  • Les contraintes d'intégrité
  • etc.

Ces informations sur les informations sont appelées méta données.

Les informations du dictionnaire de données sont consultables par l'administrateur SYSTEM. De nombreuses vues permettent d'accéder à des contenus spécifiques (comme ceux énumérés précédemment)[1][2].

Afficher toutes les vues du dictionnaire[modifier | modifier le wikicode]

La requête suivante, adaptable en commentant/décommentant les éléments souhaités, permet de lister divers éléments du dictionnaire



SELECT *

FROM dict

WHERE table_name LIKE
'%USER_%' --vues user
--'%DBA_%' -- 7 vues dba
--'C%' -- 10 vues débutent par la lettre C
--'G%' -- 492 vues débutent par la lettre G
--'V%' -- 618 vues débutent par la lettre V
--'V%' and comments not like 'Syno%' -- Toutes les vues en V sont des Synonymes
--1830 vues en tout

ORDER BY TABLE_NAME

Afficher quelques vues dynamiques utiles au DBA[modifier | modifier le wikicode]

La requête suivante, adaptable en commentant/décommentant les éléments souhaités, permet d'obtenir quelques informations et statistiques


-- Vues dynamiques utiles au DBA

SELECT *

FROM
-- V$VERSION -- Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
--V$DATABASE -- DBID NAME CREATED RESETLOGS_CHANG etc...
--V$SESSION -- 30 sessions ouvertes, multiples informations comme la machine etc...
--V$LOCK -- Infos sur les verrous
--V$SGA -- Fixed Size 2230768, Variable Size 1275069968, Database Buffers 1912602624, Redo Buffers 16932864
--V$SQL -- non accessible
V$SYSSTAT -- 628 statistiques

Afficher toutes les tables dynamiques[modifier | modifier le wikicode]

Les tables dynamiques correspondent à des zones de la mémoire SGA lorsqu'Oracle est en activité (elles disparaissent à l'arrêt de la base)


-- Les tables dynamiques correspondent à des zones de la mémoire SGA lorsqu'Oracle est en activité (elles disparaissent à l'arrêt de la base)
-- La vue v$fixed_table permet d'avoir toutes les tables et les vues PUREMENT dynamiques
--
-- DROITS REQUIS: SYS

SELECT *

FROM v$fixed_table

WHERE type='TABLE';

Travailler sur les méta-informations des tables[modifier | modifier le wikicode]

Le dictionnaire de données permet de collecter des informations par introspectif.

Classer les tables par nombre croissant de lignes[modifier | modifier le wikicode]


-- Classement des tables de la moins chargée en ligne à celle comptant le plus d'enregistrements

SELECT
table_name, num_rows

FROM user_tables

ORDER BY num_rows

Classer les tables par nombre croissant de colonnes[modifier | modifier le wikicode]


-- Classement des tables par nombre croissant de colonnes

SELECT
table_name,
count(*) as Nb_Cols

FROM user_tab_columns

WHERE
--table_name = 'POOL'
--table_name like 'FOOTBALL_CLUB_%'

GROUP BY table_name

ORDER BY Nb_Cols

Lister les colonnes d'une table[modifier | modifier le wikicode]


-- Liste des colonnes de la table

SELECT
column_name
--count(column_name)


FROM user_tab_columns

WHERE
table_name = 'MATCH'
--'REFEREE'
--'PLAYER'

--table_name like 'POOL%'
--table_name like 'FOOTBALL_CLUB_%'
--GROUP BY table_name

  1. http://www.commentcamarche.net/contents/700-oracle-le-dictionnaire-de-donnees
  2. http://didier.deleglise.free.fr/dba/dictionnaire/dict_main.htm