2010-07-14 4 views
0

Hey j'ai quelques tables temporaires qui contiennent des données, puis est supprimé après. Je vérifiais juste la taille de ces tables et même si elles ont actuellement 0 enregistrements, elles sont très grandes.SQL 2005 Réduire la table Grande taille de la table avec 0 enregistrements

SQL 2005 DB

Comment puis-je réduire la taille de ces tables?

+0

Comment est-ce que je fais cela? Je ne vois pas un bouton "Accepter" n'importe où sur mes questions précédentes. – StevieB

+0

cliquez sur la coche en haut à gauche de la réponse qui est la meilleure. –

+0

Ok, c'est fait! Désolé n'a jamais remarqué cette flèche avant! – StevieB

Répondre

2

Comme il n'y a aucune ligne, la manière la plus simple de le faire est de supprimer et de recréer la table.

Vous pouvez utiliser dbcc shrinkdatabase ou dbcc shrinkfile, mais vous ne pouvez pas réduire une seule table sauf si elle est stockée dans son propre groupe de fichiers. Cet "espace réservé" que vous souhaitez supprimer peut être utilisé pour les prochaines nouvelles données ajoutées à cette table, sans que la base de données ait besoin de les réserver la prochaine fois que vous insérerez des données. Si vous supprimez l'espace, puis insérez plusieurs lignes, le besoin d'allouer de nouveau cela ajoutera un peu plus de frais à l'insertion de ces nouvelles données.

Je ne ferais rien avec cet espace réservé inutilisé vide, sauf si vous êtes vraiment à court d'espace disque. Si vous avez besoin de plus d'espace disque, il peut être préférable d'avoir plus que de devoir constamment microgérer l'espace disque de cette table.

0

Le serveur SQL ne libérera pas réellement la page jusqu'à plus tard. Faire un index reconstruire (pas une défragmentation) sur la table, et cela devrait libérer l'espace libre à la base de données.

Questions connexes