You are here

Table de test : description

Afin de "tester" un peu le fonctionnement des bases de données avec une table un peu "lourde" qui oblige le moteur à "sortir de ses caches". Le cache des données doit être positionné à une valeur de l'ordre de 256 Mo. J'utilise une table statistique de l'activité des machines virtuelles. Cette table comporte environ 300 000 lignes et est donc très insuffisante en volume. 
create table xen_stat_v2
(   DATEC         varchar(10),
    HEUREC        varchar(5),
    SERVEUR       varchar(16),
    DOMNOM        varchar(16),
    DELTACPU      decimal,
    DELTARX       decimal,
    DELTATX       decimal,
    CPUPCT        decimal,
    NBSECR        decimal,
    NBSECW        decimal
)
La syntaxe du "create table" est à adapter légèrement selon la BDD cible.
Cette table comporte, outre l'heure (HEUREC au format HH:MM), une colonne "DATEC" au format AAAAMMJJ. La procédure de "gonflage" consiste donc à :

  1. calculer la différence entre les dates (AAAAMMJJ) mini et maxi sur la table permanente
  2. créer une nouvelle table de travail avec une date = (date originale) - différence calculée en (1) par un select sur la table originale.
  3. insérer cette nouvelle table dans la table originale
et on recommence autant de fois qu'il faut pour dépasser les 13 millions de lignes. Là aussi la syntaxe est à adapter selon la base cible ...

Les opérations mesurées ensuite sont :
  • la création de deux index :
    create index xen_stat_v2_i1 on xen_stat_v2 (DOMNOM, DATEC, HEUREC)
    create index xen_stat_v2_i2 on xen_stat_v2 (DATEC, DOMNOM, HEUREC)
  • le calcul des statistiques sur cette table
  • quelques "select" donnant des totaux avec un group by / order by :
    1. select count(*)
      from xen_stat_v2

    2. select DOMNOM,count(*)
      from xen_stat_v2
      group by DOMNOM 
      order by DOMNOM
    3. select domnom,serveur,count(*)
      from xen_stat_v2
      group by domnom,serveur
      order by domnom,serveur
Ces quelques opérations donnent simplement un petit avant-gout de la performance globale.