Brevet FR2674651A1 — publié le 19921002

DISPOSITIF D 'EVALUATION DE PERFORMANCE ADAPTABLE ka présente invention concerne un dispositif d'évaluation de performance adaptable par résolution analytique. Ce dispositif est adaptable à de nouveaux types d'une part d'architecture de machine d'autre part de nouveaux systèmes, et permettant d'évaluer le temps de réponse à une requête, le temps total et le taux d t occupation mémoire résultant d'une requête. Un tel dispositif doit pouvoir être utilisé pour différents types de système de gestion de base de données. La solution analytique est permise par la modélisation de l#envii'onnement sous forme de formule par opposition à une résolution simulée. Enfin, ce dispositif peut être utilisé également comme configurateur, c'est à dire en fixant quelques uns des éléments1 il permet de dégager une amélioration sur les autres éléments ainsi, par exemple, en fixant une architecture et un système pour une application donnée, il permet de trouver le système de gestion de base de données (SGBD) le plus adapté au type de configurations. Par contre, pour une application particulière de gestion de base de données il est possible en déterminant l'ensemble des requêtes généralement utilisé définir l'architecture du svstème la plus adaptée aux tvpes de requêtes. Ce but est atteint par le fait que le dispositif d'évaluation de performance adaptable par résolution analytique comporte une bibliothèque de connaissance de l'environnement spécifique de la base de données et un moven d'évaluation de performance Les bibliothèques comportent dans un langage de spécifications d' environnement une bibliothèque d'architecture modélisant le matériel une bibliothèque de svstème modélisant le système opérationnel et transactionnel supporté par l'architecture du matériel une bibliothèque de méthode d'accès et d'opération modélisant les algorithmes utilisés par le gestionnaire de données une bibliothèque de profils de base de données groupant les connaissances sur le schéma de base de données et des statistiques sur l'application utilisateur. Selon une autre particularité de l'innention la description de l'architecture générale dépend du classement en architecture à mémoire distribuée ou en architecture à mémoire partagée ou en architecture comportant un mélange de deux. Selon une autre particularité de l'invention le noyau d'évaluation est constitué de deux couches, une exécutant les év-aluations locales et l'autre les évaluations non locales (globales, communication et matérialisation). Selon une autre particularité de l'invention la bibliothèque de profils de base de données contient les informations de la structure de base de données qui sont orientées vers les relations (relation, attribut, index). Selon une autre particularité de l'invention l'évaluation locale calcule seulement les différents algorithmes locaux et se limite à un noeud de calculateur à la fois. Selon une autre particularité de l'invention l'évaluation globale prend en compte les communications et la construction du résultat intermédiaire et final. Selon une autre particularité de l'invention le paralléliseur détermine que l'algorithme global sera utilisé pour effectuer le parallélisme inter-opération parmi les noeuds du calculateur. Selon une autre particularité de l'invention l'algorithme global précise quels noeuds sont concernés et comment les données intermédiaires sont partagées entre eux. Selon un exemple d'utilisation la bibliothèque de modélisation de matériel comporte un attribut définissant la taille mémoire en nombre d'octet (Mem-gi) Un attribut définissant le temps d'accès par octet (MAT) Un attribut définissant le temps d'exécution par le processeur d'une seule instruction (Ci) Un attribut définissant le temps d'exécution par le processeur d'un déplacement d'un pointeur (Cm) Un attribut définissant la taille maximum d'information dans une comparaison simple (Scomp) ; Un attribut définissant le coût d'une simple comparaison entre deux Informations de base (Ccomp) Un attribut définissant le coût de calcul d'une adresse calculée (Ch) Un attribut définissant le coût d'évaluation d'un simple prédicat (Ce ) ;; Un attribut définissant le coût d'une opération de tri élémentaire (Cs) Un attribut définissant la taille de trame en nombre d'octet (Pac-Si) Un attribut définissant le temps pour envoyer une trame (Smt) Un attribut définissant le temps de réception d'une trame (Rmt) et enfin un attribut définissant le temps de transfert d'une trame entre deux processeurs (Pu) et une description de l'architecture générale constituée à partir des composants. Selon un exemple d'utilisation le profil de base de données prend en compte les informations suivantes o de la relation (Rel-Na) Cardinalité en nombre de tuples (Rel-Ca) Taille des tuples en nombre d'octet (Tup-Si) Nombre d'attribut dans un tuple (.Ntt-.NTu) Degré du parallélisme en nombre de processeur, fournissant le nombre de processeur qui manipule en même temps la relation (Deg) Nombre d'accès mémoire pour lire les attributs de clé (Rka Nu) taille en nombre de tuples d'un paquet de données, sans sémantique, (C-Si) taille en nombre de tuples d'un paquet de données, avec sémantique (Bu-Si) Pour les attributs la relation contient Le nom de l'attribut (Att-Na) Le nombre de valeur distincte pour cet attribut (Att-Nv) ka taille moyenne de l'attribut en nombre d'octet (Att-Si) La valeur maximum de l'attribut (Att-Mav) La valeur minimale de l'attribut (Att-Miv) La distribution des valeurs d'attribut (Att-Dis) Dans le cas des index La taille d'une page d'arbre B en nombre d'objet (Btp-Si) Le nombre de valeur d'index (In-X) La taille de la clé en nombre de bit (In-Si). Selon une autre particularité un exemple d'utilisation du dispositif d'évaluation de performance est une utilisation dans un compilateur, comportant un programme (PARSER) d'analyse syntaxique et sémantique des extractions demandées un gestionnaire de catalogue permettant au programme (PARSER) d'analYse syntaxique et sémantique d'effectuer les vérifications sémantiques un programme optimiseur et de parallélisation qui effectue a) la réécriture des extractions dans une routine d'optimisation logique b) La production d'un plan d'exécution optimal dans une routine d'optimisation physique c) la formulation explicite de la stratégie d'exécution dans une routine de parallélisation fixée par l'optimisation physique D'autres caractéristiques et avantages de la présente invention apparaitront plus clairement à la lecture de la description ci-après faite en référence des dessins annexés dans lesquels La figure 1 représente une architecture de compilateur utilisant le dispositif d'évaluation adaptatif selon l'invention ; invention La figure 2 représente l'évaluateur adaptatif. La figure 3 représente un premier exemple d'architecture système. La figure 4 représente un deuxième exemple d'architecture système. Les figures 5 et 6 représente la grammaire du langage de spécifications d'environnements (ESL). ka figure 7 représente l'utilisation de ce langage pour définir l'architecture de la figure 3. La figure 8 représente l'utilisation de ce langage pour définir l'architecture de la figure 4. La figure 9 représente les attributs de définition du profil de base de donnée. La figure 10 représente un exemple de méthode d'accès et d'opération. La figure 11 représente un exemple de compilateur incorporant un évaluateur non adaptatif. Les nouvelles applications de l'informatique telles que les systèmes d'information pour bureautique, les systèmes experts influencent la future génération des systèmes de base de données. Ces applications exigent des systèmes de gestion de base de données de plus en plus performants en terme de temps de réponse pour l'utilisateur. Ce but peut être atteint par le perfectionnement des compilateurs de requête, l'exécution parallèle des requêtes et l'utilisation d'algorithmes relationnels parallèles performants. Loptimiseur de requête est fondamental pour obtenir des performances élevées. Une façon d'accroître ses capacités d'optimisation est d'améliorer ses possibilités d'évaluer avec précision les temps d'exécution des requêtes. Le rôle de l'optimiseur de requête est de déduire un plan d'exécution efficace pour obtenir l'information par l'utilisateur. Ce plan spécifie toutes les informations par exemple, méthode d'accès, ordre d'opération pour calculer la requête. L'optimiseur doit être capable d'optimiser les requêtes simples ainsi que les requêtes très complexes. Quelques applications telles que la programmation logique introduisent des expressions avec des centaines de jointures (opération relatiornielle). Pour choisir le plan à exécuter, l'optimiseur de requête a besoin d'évaluer un nombre de possibilités à l'aide d'un programme d'évaluation des performances ci-après définies comme des coûts . T 'évaluationL'évaluation de coût est basée sur un modèle de coût qui rend possible l'estimation du coût de la requête tout en prenant en compte les spécificités du calculateur et de la base de données utilisée. Un dispositif d'évaluation de l'art antérieur est représenté à la figure 11 sur laquelle on peut voir l'architecture d'un compilateur comprenant un programme (2) d'analyse syntaxique et sémantique (PARSER) qui communique d'une part avec un gestionnaire de catalogue (5) destiné à définir les caractéristiques de la base de données et échangant des informations d'une part avec le programme d'analyse syntaxique et d'autre part avec un programme optimiseur (4) incluant un modèle d'évaluation de coût spécifique au compilateur et au matériel utilisé. Ce modèle d'évaluation est incorporé à l'optimiseur et n'est utilisable que pour l'architecture concernée. Dans une telle architecture, le modèle d'évaluation est développé spécialement pour un environnement spécifique centralisé et ne peut pas être facilement généralisé.En outre, le coût d'une fonction complexe est difficile à exprimer et dans le cas où plusieurs méthodes sont utilisées pour la même requête il est difficile de séparer simplement leurs coûts. La figure 1 représente l'invention dans laquelle le compilateur et le dispositif d'évaluation sont rendus indépendant et sur laquelle ont été conservées les mêmes références pour les mêmes éléments. Le compilateur comporte un programme d'analyse syntaxique et sémantique (2) qui communique d'une part avec une bibliothèque (7) et d'autre part avec un logiciel optimiseur et paralléliseur (6). Ce logiciel optimiseur et paralléliseur (6) échange par la liaison (3) des informations avec l'évaluateur (8). Cet évaluateur (8) échange des informations sur l'architecture et sur la base de données avec la bibliothèque (7).L'optimiseur paralléliseur (6) exécute trois phases de compilation, une praire appelée optimisation logique qui permet de réécrire les requêtes, une deuxième qui permet l'optimisation physique en produisant un plan d'exécution optimal et une troisième, le paralléliseur qui rend explicite la stratégie d'exécution préalalDlement fixée par l'optimisation physique. L'optimiseur paralléliseur appelle principalement la bibliothèque (7) pour obtenir des informations sur le chemin relationnel par la liaison (9). L'optimiseur (6) réalise une évaluation de l'arbre de requête pour produire un plan d'exécution optimal. Ceci nécessite l'analyse d'un jeu de plan suffisamment large pour contenir le plan optimal mais suffisamment restreint pour conserver un temps d'optimisation acceptable. La sélection du plan est effectuée à l'aide des évaluations faites par l'évaluateur (8). Chaque appel de l'optimiseur à l'évaluateur par la liaison (3) peut être exprimé par un langage de programmation de base de données tel que le langage LERA (publié dans le rapport EDS.DDIllOOOl de S.KELLET intitulé LANGUAGE FOR ENTENDEZ RELATIONAL AkGEBRA) ou LERA-PHY (LERA optimisé physiquement). L'optimiseur paralléliseur (6) doit réaliser une optimisation à deux niveaux - Une optimisation locale limitée à un noeud de calculateur à la fois et explorant seulement les différents algorithmes locaux possibles. Le choix de l'algorithme local le moins onéreux dépend principalement de l'estimation du temps d'esécution. - Une optimisation globale prenant en compte les communications et la construction du résultat intermédiaire et final. L'optimiseur détermine que l'algorithme global sera utilisé pour obtenir un parallélisme inter opération parmi les noeuds du calculateur. L'algorithme global précise quels noeuds sont concernées et comment les données intermédiaires sont partagées entre eus. A la fin de son travail, l'optimiseur décide l'ordre des opérations dans le calcul et il décide également le mode de production des relations intermédiaires utilisées pour l'arbre de requête. Dans une approche multi-ennironnement, les bibliothèques (7) sont une manière de stocker la connaissance sur des environnements spécifiques, permettant l'extensibilité et l'adaptabilité sans compromettre l'efficacité de l'évaluation. La bibliothèque (7) est composée de quatre bibliothèques comme représenté à la figure 2 - Une bibliothèque (71) constituant la bibliothèque d'architecture modélisant l'architecture matérielle (HARDWARE) dans laquelle le système de gestion de base de données est installé - Une bibliothèque de système (72) modélisant le système opérationnel et transactionnel supporté par l'architecture matérielle (HARDWARE) et supportant le système de gestion de base de données - Une bibliothèque (73) de méthode d'accès et d'opération modélisant les algorithmes utilisés par le gestionnaire de donnée et enfin une bibliothèque de profil de base de données (74) groupant les connaissances au sujet du schéma de base de données ainsi que les statistiques sur l'utilisation des données. L'utilisateur fournit au système les informations concernant l'environnement par l'utilisation d'un langage de spécifications d'environnement (ESL) représenté aux figure 5 et 6 pour chaque unité de bibiothèque. Chaque unité est compilée pour générer une bibliothèque structurée d'une manière orientée objet Le noyau d'évaluation (8) comprend deux couches , l'une exécutant les évaluations de coût non locaux (81) et l'autre les évaluations locales (80) La première couche d'évaluation des coûts non locaux (81) prend en compte les relations temporaires et les transferts de données en flot. La seconde couche (80) calcule les coûts locaux pour le processeur central et les tailles des informations résultantes en utilisant les informations stockées dans la bibliothèque et les estimations de taille d'opérande en entrée. La bibliothèque (71) décrivant l'architecture contient des descriptions de l'architecture générale et des descriptions des composants. Chaque composant est décrit en terme de propriétés spécifiques pour la mémoire dont un exemple est décrit comme suit la taille mémoire en nombre d'octet (Mem-Si) le temps d'accès mémoire par octet (MAT) pour le processeur central le coût d'une instruction simple (Ci) le coût de déplacement d'un pointeur (Cm) la taille maximum d'information dans une comparaison simple (eomP ) ; le coût d'une simple comparaison entre deux informations de base (Ccomp) ; le coût de calcul d'une adresse calculée (cl ) ; le coût d'évaluation d'un simple prédicat (Ce) le coût d'une opération de tri élémentaire (Cs) pour les interconnexions la taille de trame en nombre d'octet (Pac-Si) le temps d' envoi une trame (Smt le temps de réception d'une trame (Rit) le temps de transfert d'une trame entre deux processeurs en supposant que le réseau d'interconnexion ne soit pas saturé (Ptt). La bibliothèque d'architecture (71) comprend également une partie d'architecture générale contenant une description à haut niveau des architectures utilisées dans les études d'évaluations. x ce niveau une architecture de calculateur est vue comme une collection de composants interactifs et la focalisation est faite sur le fait de savoir si l'on se trouve en présence d' une architecture à mémoire distribuée ou d'une architecture à mémoire partagée, (nombre de niveau de mémoire, hiérarchies, types d'interconnexion et dimensions, etc..). Ainsi un exemple d'architecture est représenté à la figure 3 dans laquelle un réseau d'interconnexion (30) relie 3 blocs 31,32,33 comprenant chacun une unité centrale (311,321,323) et une mémoire associée à cette unité centrale (310 respectivement, 320 respectivement, 330).Les mémoires (310,320,330) sont distribuées mais peuvent également par le réseau d'interconnexion (30) être partagées avec le processeur d'une autre entité. Un autre type d'architecture est représenté à la figure 4, dans laquelle le réseau d'interconnexion (40) est relié d'une part à un ensemble de mémoires caches (410 à 450) associées chacune à un processeur (411 à 451) et d'autre part une mémoire globale (50) partagée entre les 5 processeurs (411 à 451). La bibliothèque (71) comprend des descriptions des différents tapes d'architecture qui peuvent être rencontrées. La grammaire du langage de spécification d'environnement (ESL) est représentée aux figures 5 et 6 et permet de décrire les différents environnements informatiques que l'on peut rencontrer. Le langage de spécification d'environnement (ESL) est caractérisé par une grammaire attribuée orientée objet. Ce langage est formé d'unités (architecture, profil de base, etc..) elles mêmes composées de classes d'objets, chaque classe d'objet étant constituée de triplets (nom, sémantique ou définition du nom, valeur). Ce langage est par exemple utilisé pour décrire l'architecture représentée à la figure 3, cette description correspondant à celle de la figure 7. De même l'architecture représentée à la figure 4 est décrite par les instructions de la figure 8. Dans ce langage, par exemple, la déclaration INT signifie qu'il s'agit d'un entier, ATT-NB signifie qu'il s'agit du nombre d'attribut, MAN B signifie qu'il s'agit du nombre maximal de tuples dans un paquet avec semantique.Le type de distribution peut prendre les valeurs U/N, U pour une distribution uniforme, N pour une distribution non uniforme. De même le type d'attribut peut prendre les valeurs I/R/S, I pour entier, R pour un réel, S (string) pour une chaine. Le profil de base de données est simplifié mais représentatif de la connaissance du schéma de la base de données. Il contient également des statistiques sur la base de données. Ce profil de base de données est principalement utile dans le modèle d'évaluation pour estimer la taille des résultats de requête. Cette taille est utilisée pour mettre à jour le taux d'occupation mémoire quand les tuples de résultat sont matérialisés et également nécessaire pour estimer le temps d'exécution de requête. Cette bibliothèque contient des informations sur la structure de base de données qui est orientée relation (relation, attribut, index). Les composants du profil de la base de données sont représentés figure 9. Plusieurs profils de base de données peuvent être introduits dans la bibliothèque chaque profil étant identifié par un nom de base de données. L'unité de profil de base de données du langage ESL est utilisée pour spécifier le contenu de la bIbliothèque de profil de base de données en termes statistiques. Ce profil représenté à la figure 9 est constitué d'un profil de relation (740) , d'un profil d'attribut (741) et d'un profil d'index (742).Un exemple de profil de relation (740) comporte ici le nom de relation (Rel-Na), la cardinalité de la relation en nombre de tuples (Rel-Ca), la taille des tuples en nombre d'octet (Tup-Si), le nombre d'attribut dans un tuple (Att-Nu), le degré (Deg) de parallélisme en nombre de processeur représentant le nombre de processeurs qui manipulent en même temps cette relation, le nombre de mémoire d'accès pour lire les attributs clé (Rka-Nu) , la taille, en nombre de tuples, des paquets de données sans sémantique (Ch-Si), la taille, en nombre de tuples, des paquets de données avec sémantique (Bu-Si). Le profil d'attribut (741) contient le nombre d'attribut (Att Na), le enombre de valeur distincte pour cet attribut (Att-Nv) ; la taille moyenne de l'attribut en nombre d'octet (Att-Si) la valeur maximum de l'attribut (Att-Mav) ; la valeur minimum de l'attribut (Att- ), la distribution des valeurs d'attribut (Att-Dis) Un exemple de profil d'index (742) contient la taille des payes d'arbre bibliothèque en nombre d'objet (Btp-Si) ; le nombre de valeur d'index (In-Nv) ; la taille de la clé en nombre d'octet (In-Si). La bibliothèque système (72) prend en compte, par exemple, les informations sur le système de commande (création de processus, gestion des mémoires) le système transactionnel (gestion des verrous, initialisation (loggin)) et les informations telles que la taille de la ligne de cache en nombre d'octet (Cal-Si) la taille du bus de données entre le processeur et le cache en nombre d'octet (Dab-Si) le nombre de paquet sans sémantique dans la mémoire partagée (Ch-Nu) Le nombre de paquet avec sémantique dans la mémoire partagée (Bu-Nu) ; Le temps d'accès au cache pour lire ou écrire une information (last) Le temps de l'unité centrale pour calculer une comparaison entre deux informations de base (T-Comp) Le temps de dépassement associé pour activer chaque opération (Ove-T). Ces informations sont utilisées dans le modèle d'évaluation.Enfin la bibliothèque comporte une modélisation des méthodes d'accès et d'opération qui décrit l'opérateur de relation tel que par exemple un filtre de projection (Filter Map) mis en oeuvre par un algorithme de balayage à appliquer au tuple de la relation donnée en tant qu'argument d'entrée dans la requête en langage LERA-PHY. Ainsi, pour une formule d'évaluation donnée (100) représentée à la figure 10 dans laquelle une évaluation est faite en fonction d'un certain nombre de paramètre tel que PCREAT. r Ci, Cinit scat, Cscan qui eux-mêmes sont fonction d'évaluation dépendant de paramètre définis dans un algorithme de filtre projeté (Filter-Map), explicité dans la partie 101 de la figure 10. Les algorithmes d'évaluation du type de celui (100) représenté à la figure 10 constituent l'évaluateur (8). Pour de plus amples informations sur les modèles d'évaluation 1 l'homme de l'art pourra se référer au rapport EP2025 DDllb3501, mai 1990 de F.ANDRES intitulé "Study of some typical algorithms for a cost model definition" et au rapport EP2025 DD11b3901 intitulé "Cost model for a database system in a distributed memory architecture". Toutes modifications à la partie de l'homme de métier font également partie de l'invention. R13VENDICATIONS 1. Dispositif d'évaluation de performance adaptable par résolution analytique de base de données comportant une bibliothèque (7) de connaissance de l'environnement spécifique de la base de données et un moyen d'évaluation (8) de performance utilisant les informations de la bibliothèque de connaissance (7) caractérisé en ce que la bibliothèque de connaissance (7) comporte dans un langage de spécifications d'environnement : une bibliothèque d'architecture (71) modélisant le matériel ; une bibliothèque de système (72) modélisant le système opérationnel et transactionnel supporté par l'architecture du matériel une bibliothèque de méthode d'accès (73) et d'opérations modélisant les algorithmes utilisés par le gestionnaire de données une bibliothèque de profils de base de données (74) groupant les connaissances sur le schéma de base de données et des statistiques sur l'application utilisateur. 2. Dispositif selon la revendication précédente caractérisé en ce que la description de l'architecture (71) générale dépend du classement en architecture à mémoire distribuée ou en architecture à mémoire partagée ou en architecture comportant un mélange de deux. 3. Dispositif selon la revendication 1 caractérisé en ce que la bibliothèque de profils de base de données (74) contient les informations de la structure de base de données qui sont orientées vers les relations (relation, attribut, index). 4. Dispositif selon la revendication 1 caractérisé en ce que le moyen d'évaluation (8) est constitué de deux couches, une exécutant les évaluations locales (80) et l'autre les évaluations non locales (81) (Communication et matérialisation). 5. Dispositif selon une des revendications précédentes caractérisé en ce que l'optimiseur local (6) explore seulement les différents algorithmes locaux et se limite à un noeud de calculateur à la fois. 6. Dispositif selon une des revendications précédentes caractérisé en ce que l'optimisation globale (6) prend en compte les communications et la construction du résultat intermédiaire et final. 7. Dispositif selon une des revendications précédentes caractérisé en ce que le paralléliseur (6) détermine quel algorithme global sera utilisé pour effectuer le parallélisme inter-opération parmi les noeuds du calculateur. 8. Dispositif selon la revendication 7 caractérisé en ce que l'algorithme global précise quels noeuds sont concernés et comment les données intermédiaires sont partagées. 9. Dispositif selon la revendication 1 caractérisé en ce que la bibliothèque (7) de modélisation de matériel comporte un attribut définissant la taille mémoire en nombre d'octet (Mem-Si) Un attribut définissant le temps d'accès par octet (MAT) ; Un attribut définissant le temps d'exécution par le processeur d'une seule instruction (Ci) Un attribut définissant le temps d'exécution par le processeur d'un déplacement d'un pointeur (Cm) ; Un attribut définissant la taille maximum d'information dans une comparaison simple (nom) ; Un attribut définissant le coût d'une simple comparaison entre deux informations de base (CCOmp) ; Un attribut définissant le coût de calcul d'une adresse calculée (Ch) ;; Un attribut définissant le coût d'évaluation d' un simple prédicat (Ce) Un attribut définissant le coût d'une opération de tri élémentaire (C5) ; Un attribut définissant la taille de trame en nombre d'octet (Pac-Si) ; Un attribut définissant le temps pour envoyer une trame (set) ; Un attribut définissant le temps de réception d'une trame (Rmt) et enfin un attribut définissant le temps de transfert d'une trame entre deux processeurs (Pu) et une description de l'architecture générale constituée à partir des composants. 10. Dispositif selon la revendication 3 caractérisé en ce que la bibliothèque de profil de base de données (74) prend en compte les informations suivantes Nom de la relation (Rel-Na) Cardinalité en nombre de tuples (Rel-Ca) Taille des tuples en nombre d'octet (Tup-Si) Nombre d'attribut dans un tuple (Att-Nu) Degré du parallélisme en nombre de processeur, fournissant le nombre de processeur qui manipule en même temps la relation (Deg) Nombre d'accès mémoire pour lire les attributs de clé (Rka Nq) taille en nombre de tuples d'un paquet de données sans sémantique (Ch-Si) taille, en nombre de tuples, d'un paquet de données avec sémantique (Bq-Si) Pour les attributs la relation contient Le nom de l'attribut (Att-Na) Le nombre de valeur distincte pour cet attribut (Att-Ng) La taille moyenne de l'attribut en nombre d'octet (Att-Si) La valeur maximum de l'attribut (Att-Mav) La valeur minimale de l'attribut (Att-Miv) La distribution des valeurs d'attribut (Att-Dis) ; Dans le cas des index La taille d'une page d'arbre B en nombre d'objet (Btp-Si) Le nombre de valeur d'index (In-Nv) La taille de la clé en nombre de bit (In-Si). 11. Utilisation du dispositif selon une des revendications précédentes dans un ensemble comprenant un compilateur, comportant un programme (PARSER) (2) d'analyse syntaxique et sémantique des extractions demandées, communiquant d'une part avec une bibliothèque (7) et d'autre part avec un logiciel optimiseur paralléliseur (6); la bibliothèque (7) permettant au programme (PARSER) d'analyse syntaxique et sémantique d'effectuer les vérifications sémantiques ; le programme optimiseur et de parallélisation (6) effectuant a) la réécriture des extractions dans une routine d'optimisation logique b) La production d'un plan d'exécution optimal dans une routine d'optimisation physique c) la formulation explicite de la stratégie d'exécution dans une routine de parallélisation fixée par l'optimisation physique.