Ingres : minitest

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.