Bonjour,
Je travaille actuellement sur une base de données SQL Server 2008 contenant différentes données. Cette base contient entre autre des objets complexes sous la forme suivante :
- une table contient les caractéristiques basiques de l'objet (nom, type, etc..)
- six autres tables contiennent les éléments susceptibles d'être contenus dans l'objet complexe (une table contenant tous les éléments de type A, une autre tous les éléments de types B, etc...)
- enfin, six tables de jointure font le lien entre l'objet complexe et les éléments qu'il contient
Ces 13 tables permettent donc de savoir qu'un objet complexe X contient 10 éléments A, 50 éléments B, etc...
J'ai mis en place une procédure stockée permettant de supprimer un objet complexe. Cette procédure va donc supprimer l'objet et va aussi effectuer un nettoyage dans les tables d'éléments et les tables de jointures. Les références vont être supprimées des tables de jointures et les éléments n'étant contenus que dans l'objet X que l'on cherche à supprimer le seront également. Les éléments partagés par un objet X et un objet Y resteront dans la base jusqu'à ce que l'objet Y soit supprimé à son tour.
J'ai également mis en places des procédures permettant d'insérer facilement dans la base de nouveaux objets.
J'ai expérimentés différents scénarios et j'avoue que certains d'entre eux me laissent perplexes :
- lorsque je supprime à l'aide de ma procédure un objet X de la base puis un objet Y, la procédure s'exécute à chaque fois en 1s.
- lorsque je supprime à l'aide de ma procédure un objet X, que je le réinsère, puis que je supprime un objet Y, la procédure de suppression s'exécute à chaque fois en 1s.
- lorsque je supprime à l'aide de ma procédure un objet X, que je le réinsère, puis que je supprime à nouveau cet objet X, la procédure de suppression s'exécute cette fois-ci durant un laps de temps compris entre 1 et 4mn !
J'avoue ne pas comprendre cette lenteur soudaine. J'ai tenté de laisser "souffler" le serveur entre ma suppression/insertion et ma nouvelle suppression, rien n'y a fait. Reconstruire les index n'a rien changé non plus. Auriez-vous une idée de ce qui pourrait être la cause de ce ralentissement soudain ?
Merci d'avance pour votre aide
Cdlt
Hatman
Partager