web-dev-qa-db-fra.com

Allouer de l'espace pour le stockage temporaire de l'objet 'dbo.SORT

DBCC CHECKDB renvoie:

Impossible d'allouer de l'espace pour l'objet 'dbo.SORT stockage temporaire: 140737951236096' dans la base de données 'tempdb' car le groupe de fichiers 'PRIMARY' est plein.

Créez de l'espace disque en supprimant les fichiers inutiles, en supprimant des objets dans le groupe de fichiers, en ajoutant des fichiers supplémentaires au groupe de fichiers ou en activant la croissance automatique pour les fichiers existants dans le groupe de fichiers.

Msg 9002, niveau 17, état 4, ligne 1

6
shamim

C'est assez explicite - votre tempdb est plein et ne peut pas être développé pour effectuer l'opération pour laquelle il a besoin de tempdb.

Comme indiqué, soit le disque où il se trouve est plein, soit vous n'avez pas les paramètres de croissance automatique appropriés ( voir ce post précédent pour plus d'informations à ce sujet ), si ce n'est pas la croissance automatique, vous devrez supprimez les autres fichiers du disque sur lequel se trouve votre tempdb ou localisez votre tempdb sur un disque plus gros.

Cet article sqlservercentral est similaire au vôtre et pourrait valoir le coup d'œil. Cette vidéo de Brent Ozar pourrait aussi valoir le coup d'œil, couvrant les performances et la configuration de tempdb.

4
Ian_H

Exécutez cette commande pour obtenir l'espace tempdb estimé requis pour la vérification:

DBCC CHECKDB ('databasename') WITH ESTIMATEONLY

Voir le DBCC CHECKDB documentation

ESTIMATION UNIQUEMENT
Affiche la quantité estimée d'espace tempdb requise pour exécuter DBCC CHECKDB avec toutes les autres options spécifiées. La vérification réelle de la base de données n'est pas effectuée.

J'ai exécuté la requête ci-dessous et il a libéré l'espace inutilisé.

USE [tempdb]
GO
DBCC SHRINKFILE (N'tempdev' , 0, TRUNCATEONLY)
GO
0