Optimization de l'Indexation dans une table
Bonjour,
J'ai une table volumineuse contenant l'historique des ventes d'une société (13 gigas)
La table est constituée ainsi
VENTES(JOUR, ARTICLE, MAGAZIN, VOLUME, PROFIT)
Donc des enregistrements de cette forme:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
20080101 0000000001 1 15800 78340.00
20080102 0000000001 1 23306 45094.10
20080103 0000000001 1 115032 178340.33
20080104 0000000001 1 15800 78340.00
20080105 0000000001 1 23306 45094.10
20080106 0000000001 1 15800 78340.00
20080107 0000000001 1 23306 45094.10
20080101 0000000002 1 215500 78340.00
20080102 0000000002 1 13307 45094.10
20080103 0000000002 1 115033 178340.33
20080104 0000000002 1 16602 78340.00
20080105 0000000002 1 23309 45094.10
20080106 0000000002 1 14808 78340.00
20080107 0000000002 1 11377 45094.10 |
Pour l'info, je n'ai que 2 magazins (1 et 2) donc je peux avoir des enregistrements similaires pour le magazin 2
Sans indexes, les performances sont catastrophiques.
J'ai donc du créer quleques uns
Code:
1 2 3
|
CREATE X_ARITCLE on VENTES(ARTICLE)
CREATE X_JOUR on VENTES(JOUR) |
Ca a nettement amélioré les performances, mais je suis quasi sur que ce que je fais n'est pas optimal.
Des suggestions ?
Merci
prpposition pour la table VENTES ( optimisation )
Citation:
J'ai une table volumineuse contenant l'historique des ventes d'une société (13 gigas)
Avec une table de 13 gigas, vous auriez intérêt à passer par une table temporaire lors de votre importation ( PREVENTES ) et de structurer la table VENTE comme une table définitive avec un index cluster sur la colonne MAGAZIN puisque vous n'en n'avez que deux et un index non cluster sur la colonne numérique VOLUME et comme vous l'aviez compris, un index non cluster sur la colonne ARTICLE.
La clé primaire IDENTITY que recommande sql pro peut être utile à condition d'utiliser la clé dans vos développements. Dans ce cas là, oubliez l'index cluster sur MAGAZIN puisqu'une clé primaire est aussi un index cluster.