McM, Garuda Au secours ...
Cher 080983,
C'est exactement ce que te proposait mon message d'hier voir ci-dessous
il te suffit de lancer un ANALYSE (complet) sur tes 5 tables
Puis d'adapter le SQL en remplaçant le
AND A.TABLE_NAME = 'ANNEEJOURS'
par
AND A.TABLE_NAME IN('TABLE1','TABLE2',.....'TABLE5')
Comme j'avais proposé un
GROUP BY A.TABLE_NAME, A.NUM_ROWS
Tu obtiendras la densité de chaque table et en prime les éléments pour calculer la densité globale
8O si un problème persiste dis le nous le ...:D
Bon j'y retourne ... j'ai du boulot ;)
Citation:
Envoyé par BRUNO2R
N'obtient on pas l'info recherchée avec
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| 1) ANALYZE TABLE ANNEEJOURS COMPUTE STATISTICS FOR ALL COLUMNS;
puis
2)
SELECT
Z.NBNULL,
Z.NBCOLUMNS,
Z.NBLIGNES,
(Z.NBLIGNES * Z.NBCOLUMNS) AS NBDATA,
((Z.NBLIGNES * Z.NBCOLUMNS) - Z.NBNULL) / (Z.NBLIGNES * Z.NBCOLUMNS) AS DENSITE
FROM
(SELECT A.TABLE_NAME, A.NUM_ROWS AS NBLIGNES, count(B.COLUMN_NAME)AS NBCOLUMNS, sum(B.NUM_NULLS) AS NBNULL
FROM USER_TAB_COLUMNS B, USER_TABLES A
WHERE A.TABLE_NAME = B.TABLE_NAME
AND A.TABLE_NAME = 'ANNEEJOURS'
GROUP BY A.TABLE_NAME, A.NUM_ROWS) |
sur une table ANNEEJOURS comportant des NULL dans le champ FERIE
on obtient :
Code:
1 2 3
|
NBNULL NBCOLUMNS NBLIGNES NBDATA DENSITE
1784 12 1825 21900 0.918538812785388 |