La table "habituelle" a été reconstituée à grans coups de "insert/select". Toutefois la syntaxe permettant de "décaler" vers le passé les dates "historiques" conservées en format "texte" AAAAMMJJ n'est pas évidente et forte consommatrice de CPU.
Calcul des statistiques (optimizedb) (doc disponible) :
optimizedb -utest -zu4096 -zv test -rxen_stat_v2
ven mai 7 11:41:25 CEST 2010
*** statistics for database test version: 01000
*** table imp_xen rows:793466 pages:15561 overflow pages:15558
*** column nbsecw of type decimal (length:10, scale:2, nullable)
date:07-may-2010 10:41:28 unique values:801.000
repetition factor:990.5942383 unique flag:N complete flag:0
domain:0 histogram cells:1602 null count:0.0000000 value length:8
*** statistics for database test version: 01000
*** table imp_xen rows:793466 pages:15561 overflow pages:15558
*** column nbsecr of type decimal (length:10, scale:2, nullable)
........
*** statistics for database test version: 01000
*** table xen_stat_v2 rows:13195433 pages:206183 overflow pages:206177
*** column deltacpu of type decimal (length:10, scale:2, nullable)
date:07-may-2010 10:43:00 unique values:61.000
repetition factor:216318.5781250 unique flag:N complete flag:0
domain:0 histogram cells:122 null count:0.0000000 value length:8
ven mai 7 11:43:00 CEST 2010
Soit un temps de 1 minute et 25 secondes.
Création du premier index :
sql -utest test <statv2_cre_idx.sql
INGRES TERMINAL MONITOR Copyright 2010 Ingres Corporation
Ingres Linux Version II 10.0.0 (a64.lnx/122)NPTL login
Wed May 5 14:42:31 2010
continue
* * * * * * * * * /* SQL Startup File */
create index xen_stat_v2_i1 on xen_stat_v2 (DOMNOM, DATEC, HEUREC) ;
Executing . . .
(13147446 rows)
continue
Your SQL statement(s) have been committed.
Ingres Version II 10.0.0 (a64.lnx/122)NPTL logout
Wed May 5 14:44:30 2010
Soit environ 1 minute 59 secondes.
Création du second index :
sql -utest test <statv2_cre_idx.sql
INGRES TERMINAL MONITOR Copyright 2010 Ingres Corporation
Ingres Linux Version II 10.0.0 (a64.lnx/122)NPTL login
Wed May 5 14:47:34 2010
continue
* * * * * * * * * /* SQL Startup File */
create index xen_stat_v2_i2 on xen_stat_v2 (DATEC, DOMNOM, HEUREC) ;
Executing . . .
(13147446 rows)
continue
*
Your SQL statement(s) have been committed.
Ingres Version II 10.0.0 (a64.lnx/122)NPTL logout
Wed May 5 14:49:50 2010
Soit environ 2 minutes et 16 secondes.
Comptages :
1) comptage "brut"
sql -utest test <CNT_1.sql
INGRES TERMINAL MONITOR Copyright 2010 Ingres Corporation
Ingres Linux Version II 10.0.0 (a64.lnx/122)NPTL login
Wed May 5 14:53:09 2010
* * * * * * /* SQL Startup File */
select count(*) from xen_stat_v2
Executing . . .
┌─────────────┐
│col1 │
├─────────────┤
│ 13147446│
└─────────────┘
(1 row)
continue
*
Your SQL statement(s) have been committed.
Ingres Version II 10.0.0 (a64.lnx/122)NPTL logout
Wed May 5 14:53:25 2010
Soit environ 16 secondes.
2) Comptage group by
sql -utest test <CNT_GRP_1.sql
INGRES TERMINAL MONITOR Copyright 2010 Ingres Corporation
Ingres Linux Version II 10.0.0 (a64.lnx/122)NPTL login
Wed May 5 14:55:09 2010
* * * * * * * * /* SQL Startup File */
select domnom,count(*)
from xen_stat_v2
group by domnom
order by domnom
Executing . . .
┌────────────────┬─────────────┐
│domnom │col2 │
├────────────────┼─────────────┤
│Domain-0 │ 2512057│
│amdx2-2000 │ 254925│
│amdx2-bi2003 │ 255541│
......
│k2000-ora64 │ 2333479│
│k2000-ora65 │ 898205│
│k2000-ora66 │ 862580│
└────────────────┴─────────────┘
(19 rows)
continue
*
Your SQL statement(s) have been committed.
Ingres Version II 10.0.0 (a64.lnx/122)NPTL logout
Wed May 5 14:55:29 2010
Soit environ 20 secondes.
3) Comptage "group by"
sql -utest test <CNT_GRP_2.sql
INGRES TERMINAL MONITOR Copyright 2010 Ingres Corporation
Ingres Linux Version II 10.0.0 (a64.lnx/122)NPTL login
Wed May 5 14:57:04 2010
continue
* * * * * * * * /* SQL Startup File */
select domnom,serveur,count(*)
from xen_stat_v2
group by domnom,serveur
order by domnom,serveur
Executing . . .
┌────────────────┬────────────────┬─────────────┐
│domnom │serveur │col3 │
├────────────────┼────────────────┼─────────────┤
│Domain-0 │k2000 │ 2305773│
......
│k2000-ora66 │k2000 │ 862580│
└────────────────┴────────────────┴─────────────┘
(24 rows)
continue
*
Your SQL statement(s) have been committed.
Ingres Version II 10.0.0 (a64.lnx/122)NPTL logout
Wed May 5 14:57:38 2010
Soit environ 34 secondes.
En bref la base de données est assez rapide et n'a pas à rougir devant les performances des autres bases existantes. La gestion des bases Ingres est très simple, beaucoup de bases utilisées dans l'industrie tournent sans aucun DBA qualifié. Si la base est bien installée (répartition et place disque) et paramétrée correctement (taille mémoire, log, espace temporaire, système de "lock") elle peut fonctionner des années quasiment sans intervention, cela n'empêche pas de sauvegarder les données !
Petit rappel sur l'outil "sql".
L'outil "sql" utilisé pour les tests est l'outil "batch" de Ingres (il peut aussi être utilisé "à la main" bien sûr).
La syntaxe SQL est assez standard, seuls quelques "trucs" peuvent gêner :
- exécuter l'ordre SQL courant : il faut frapper "\g" pour lancer l'exécution ou "\p\g" pour lister l'ordre et l'exécuter.
- quitter : il faut frapper "\q"
Le prompt est marqué par un "*" exemple :
* help\g
Executing . . .
Name Owner Type
xen_stat_v2 test table
xen_stat_v2_i1 test index
xen_stat_v2_i2 test index
(3 rows)
continue
*\q
Il faut le savoir ... pour la doc c'est ici.
Rappel sur les "switchs" :
Attention dans Ingres, les switchs de commande comme le "-u" dans "sql -utest" ne doivent pas être suivis d'un espace contrairement à beaucoup d'autres logiciels.