Bonjour,
J'ai du reprendre un projet contenant une base de données SQL Server 2012.
Mon probleme porte sur une table qui contient environ 40 millions de ligne.
Chaque est constitué d'une vingtaine de calcul (real) et d'un champs date, et de 5 champs varchar d'une longueur de 30 environ.
Pour alléger le poids de la table j'ai créer 5 tables de références contenant les chaines de caractères et j'ai créer un ID (smallint) permettant de faire le lien.
Mon problème se porte sur les index.
1 - Lorsque je réalise ma requête en filtrant avec les noms littéraux les table de références sont utilisé et les temps de traitement sont infiniment long.
2 - Lorsque je fait la même requête en utilisant directement des ID correspondant la requête est quasi instantanée.
Il y a un index couvrant sur la grosse table avec la date et les 5 colonnes en tant que clefs.
la requete est un group by portant sur une ou plusieurs des clefs de l'index. La clause where porte sur les 5 colonnes.
Merci de votre aide
Partager