web-dev-qa-db-fra.com

SQL Server 2008 R2 SP1 - TEMPDB "Espace libre disponible" montrant une valeur négative

S'il vous plaît, aidez-vous comme ce problème me conduit à Noix ...

Tempdb a quatre fichiers de données et un fichier journal. Ils sont tous situés sur le même lecteur dédié.

Lorsque j'ai le droit de cliquer avec le bouton droit de la souris sur tempdb dans SQL Server Management Studio (SSMS) pour afficher les propriétés -> Général ... Je vois "Taille" comme ~ 65000 Mo avec "espace disponible" comme ~ 64000 Mo. Cependant, lorsque j'essaie de réduire les fichiers via l'interface graphique, je vois que l'espace "actuellement alloué" n'a pas changé et montre toujours la taille initiale.

C'est également l'endroit où l'espace libre "disponible" est indiqué comme un nombre négatif. La seule solution de contournement que j'ai trouvée jusqu'à présent est de redémarrer SQL Server pour chasser tempdb, mais je ne peux pas continuer à le faire.

Quelqu'un a-t-il déjà rencontré cela et connaît la cause fondamentale/la solution permanente pour cela s'il vous plaît?

7
Chinesinho

Ouvrir l'analyseur de requête RUN DBCC UPDATEUSAGE('tempdb') Une fois que cela est terminé, cochez la valeur TEMDB et il doit afficher les valeurs réelles.

En outre, this pourrait vous aider.

Vérifiez également s'il existe des transactions ouvertes à l'aide de DBCC Opentran ou SP_WhoisActive (Adam Mechanic's SP)

C'était un bogue dans SQL Server 2008 SP1 décrit ici .

Par curiosité, causant-il des problèmes de performance?

2
Kin Shah

Eh bien, vous devez vérifier vos paramètres tempdb et vue d'ensemble de l'utilisation de votre serveur. Microsoft donne les conseils principaux pour la gestion de la TEMPDB et l'optimisation de la peformance (voir http://msdn.microsoft.com/en-us/library/ms175527 (v = SQL.105) .aspx ). Essayez d'appliquer et voir le résultat (dans mon cas, il a aidé à optimiser ma base de données de 17 Go à 4 Go)

Vous pouvez également utiliser la base de données SP_SPACECED PROP TEMP. Il vous indiquera quelle table consommez la plupart de l'espace dans le fichier de données. Vous pouvez également utiliser Profiler pour détecter le fichier Auto Grow and Journal Fichier Auto Grow. Si cela change souvent - vous prendra automatiquement un espace supplémentaire et vous devrez probablement modifier la logique d'utiliser vos tables #TMP.

Et rétrécissant TEMPDB sur le serveur de travail, il peut vous amener à des problèmes avec les requêtes sur les autres bases de données (le faire uniquement en mode unique)

0
Alex