Hello,
Voilà je cherche les meilleurs moyens pour optimiser des requêtes sur une table avec 3 millions de lignes.
Pour l'instant cette table est équipée d'un clé primaire composite sur les colonnes:
- Numéro Département (nvarchar(5))
- Numéro Client (nvarchar(10))
Les requêtes que je fait sont tous filtrés par une colonne DATE_ACHAT de type date, et ça rame beaucoup pour ramener les données sur une année.
Ex: je ramène tous les achats sur l'année 2009, soit à peu près 350 000 lignes et il me met près de 5 minutes pour le ressortir.
J'ai essayé de créer un index : Numéro Départ + Numéro Client + Date_Achat mais le plan d'exécution montre que ma requête n'utilise jamais cet index, SQL Server préfère utiliser la clé primaire à chaque fois.
Le seul ca où cet index est utilisé a été un test où je ne remonte que Numéro Départ + Numéro Client + Date_Achat .
Bref je trouve dommage qu'on ne puisse tirer profit des filtres que je mets sur la date d'achat dans le plan d'exécution.
A votre avis quels sont les meilleurs moyens à mettre en oeuvre pour optimiser ce type de requête ? Un partitionnement par année, ça existe sous SQL Server comme sur Oracle ça se fait comment ?
Partager