[SQL Server] - Optimisation SHRINKDATABASE

Fermé
nicolas23 Messages postés 5 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 29 mai 2007 - 29 mai 2007 à 16:53
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 - 29 mai 2007 à 17:40
Bonjour,

j'ai une base de prod qui fait 150Go. la commande
GO
exec sp_spaceused @updateusage = 'true'
GO

me renvoie 45Go de 'unallocated space'.
je lui lance un DBCC SHRINKDATABASE (PRODUCTION,15)
==> Ca me vide bien une bonne partie de mes 45Go (me diminue mes datafiles) mais des le lendemain j'ai le même scénario.

Comment puis je faire pour supprimer rellement l'espace non utilisé

Merci d'avance
Nicolas
A voir également:

6 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
29 mai 2007 à 17:04
L'espace inutilisé est nécessaire dans le cas où les tables et indexes grossissent.

Regarde dans les paramètres de la base: Il y un paramètre d'auto-grow, c'est à dire une croissance de l'allocation disque automatique.

Il me semble qu'elle est réglée par défaut à 10%.

Tu peux la fixer en %, en méga-octets ou la désactiver. A toi de voir.


Je le répète: L'espace non alloué est utile.
0
nicolas23 Messages postés 5 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 29 mai 2007
29 mai 2007 à 17:13
Merci Sebsauvage

Je pensais que reduire cet espace intulisé me ferai gagner en temps de reponse. Est-ce le cas ?
En gros j'ai une base qui est tres mal organisé avec des datafiles dans tous les sens et de toutes les valeurs (50Go, 12Go, 20Go, ...) mis sur n'importe quel disque.
Je vais donc la recreer mais je voulais au préalable supprimer tout l'espace non utilisé dû aux delete, truncate, update.
Quelle est donc la meilleurs solution selon toi ??

Merci d'avance
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
29 mai 2007 à 17:25
Est-ce que les datafiles sont répartis sur plusieurs disques durs physique ?
(et pas seulement partitions).

Si c'est le cas, alors c'est bien !
Mettre les datafiles sur des disques différents permet d'améliorer les performances.

Réduire l'espace non utilisé ne permettra pas d'améliorer les performances.

Il faudra lancer un profiler pour voir où sont les problèmes de perf (et éventuellement optimiser les requêtes, modifier les indexes sur certaines tables, etc.)

Voir également historiser les enregistrements de certaines table si c'est possible pour les alléger (exemple: archiver sur DVD les données de 2000 à 2005.)
0
nicolas23 Messages postés 5 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 29 mai 2007
29 mai 2007 à 17:28
ok
merci je vais regarder tout ca.
Qu'est qu'un 'profiler' ??? Comment le lance t'on ?

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
29 mai 2007 à 17:33
Qu'est qu'un 'profiler' ???


ah... soucis. Tu devrais connaître, en tant qu'admin.

C'est un outils qui permet de voir toutes les requêtes qui arrivent sur le serveur SQL et de voir combien de temps elles prennent.

C'est un peu complexe à utiliser, mais c'est le seul moyen pour trouver les requêtes mal écrites qui font ramer le serveur.


Je n'ai plus de SQL Server sous la main, je ne pourrai donc pas t'aider là dedans.
0
nicolas23 Messages postés 5 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 29 mai 2007
29 mai 2007 à 17:36
je ne suis pas admin du tout. J'ai ete parachuté la dessus ;-)

Merci de tes conseils je vais regarder tout ca
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
29 mai 2007 à 17:40
De rien.
0