2010-10-16 6 views
0

Nous avons récemment déplacé la valeur d'une colonne d'une table existante vers une nouvelle table afin qu'elle puisse résider sur un disque séparé.Récupérer de l'espace inutilisé dans SQL Table

La colonne préexistante existe toujours, mais a été définie sur null, car certaines applications historiques peuvent toujours faire référence à cette colonne lors de l'écriture de données.

La table a maintenant 10 Go d'espace inutilisé que nous ne pouvons pas récupérer même après la reconstruction de l'index cluster et l'exécution de DBCC SHRINKDATABASE et SHRINKFILE. Comment pouvons-nous récupérer ces 10 Go d'espace inutilisé dans cette table car la table dans sa nouvelle forme ne devrait pas croître de 10 Go l'année prochaine + mais les autres tables de la base de données continueront à croître et nous souhaitons retourner ce 10GB au pool de base de données générale.

Je vais répéter, comment pouvons-nous récupérer ces 10 Go d'espace inutilisé dans une table spécifique (étant donné que la table n'est pas vide)?

+0

non liée à la programmation ... appartient à serverfault ou superutilisateur –

Répondre

1

Avez-vous essayé d'importer la table dans une nouvelle table? Ce serait le moyen le plus simple de vérifier s'il y a de l'espace disponible. Si vous ne voulez pas développer cette base de données (car elle peut augmenter de 10 Go de plus), vous pouvez créer une base de données temporaire et l'importer de façon à ce que vous commenciez avec un DB vide de taille minimale. En outre, si vous avez activé la journalisation complète sur la base de données, vous pouvez effectuer une sauvegarde complète avant d'essayer SHRINKDATABASE/SHRINKFILE.

+0

Ouais, c'est à peu près ce que nous avons décidé d'aller avec, nous devons juste faire attention à toutes les contraintes FK et similaires. – Seph

Questions connexes