Bonjour,
J'ai une application qui utilise LocalDB pour travailler.
La base de données est assez volumineuse. Entre 1 et 8 Go selon les postes utilisateurs.
Régulièrement, on a des volumes de données "conséquents" à mettre à jour (surtout insert) ou de nouvelles tables/colonnes.
Je constate des performances catastrophiques.
Là par exemple, sur un poste de test, j'ai un script qui crée 4 nouvelles colonnes dans une table. C'est clairement pas la table la plus grosse. J'ai une base "moyenne" (4 Go).
Et là, rien que ce alter table, ça fait plus de 30 minutes qu'il tourne et que le disque patine comme un cinglé.
Je soupçonne :
- Une fragmentation au delà du raisonnable de la base de données
- Des statistiques et index qui ne sont absolument pas à jour
- Et je ne sais quoi d'autre...
Comment faire pour conserver de bonnes performances ?
Je n'ai pas la main sur les postes.
Je peux au mieux déployer un *.bat qui tournera ponctuellement.
Comment :
1/ "Défragmenter" la base existante ?
2/ Forcer l'accroissement de la base par morceaux de 512 Mo par exemple, plutôt que l'incrément 1 Mo qui doit être par défaut ?
3/ Y a-t-il un moyen pour que les statistiques et index se recalculent automatiquement ?
J'ai tenté de lancer avec osql des scripts de recalcul des stats et index, mais visiblement ça ne suffit pas : je ne vois pas de différence. Je pense plutôt à une fragmentation excessive des données (le disque s'allume au fixe à la moindre requête).
Partager