Oracle Database/Quelques requêtes utiles/Dictionnaire de données
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
modifierLa 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
modifierLa 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
modifierLes 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
modifierLe dictionnaire de données permet de collecter des informations par introspectif.
Classer les tables par nombre croissant de lignes
modifier-- 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-- 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-- 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