Symptômes
Supposez que vous disposez d’une table qui contient une colonne d’objet volumineux (LOB) dans Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 ou SQL Server 2014. Lorsque vous mettez à jour la colonne LOB en utilisant une taille réduite de données métier et que vous essayez de récupérer l’espace inutilisé en utilisant les méthodes suivantes :
-
DBCC SHRINKDATABASE/DBCC SHRINKFILE
-
ALTER INDEX RÉORGANISER AVEC (LOB_COMPACTION = ACTIVÉ)
Dans ce cas, l’espace inutilisé ne peut pas être récupéré.
Résolution
Le problème a été résolu dans la mise à jour cumulative suivante de SQL Server.
Mise à jour cumulative 2 pour SQL Server 2012 SP2 /en-us/help/2983175
Mise à jour cumulative 11 pour SQL Server 2012 SP1 /en-us/help/2975396
Mise à jour cumulative 13 pour SQL Server 2008 R2 SP2 /en-us/help/2967540
Mise à jour cumulative 2 pour SQL Server 2014 /en-us/help/2967546
Mise à jour cumulative 17 pour SQL Server 2008 SP3 /en-us/help/2958696
Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs et les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Consultez les dernières mises à jour cumulatives pour SQL Server :
Solution de contournement
Pour contourner ce problème, utilisez les solutions de contournement suivantes :
-
Exportez toutes les lignes dans un nouveau tableau et replacez les lignes. Cela réorganise les données métier et libère l’espace inutilisé.
-
Utilisez l’option DBCC SHRINKFILE avec EMPTYFILE option pour déplacer toutes les données dans un fichier de données que vous venez d’ajouter, puis supprimez les anciens fichiers de données. Cela réorganisationne les données métier en libérant l’espace inutilisé.
Informations supplémentaires
Dans l’exemple suivant, l’espace inutilisé est affiché à l’aide de la commande TSQL sp_spaceused’table_name' avant et après la mise à jour de la colonne LOB avec une plus petite taille de données métier : avant de procéder à la mise à jour :
nommer |
lignes |
réservé |
data |
index_size |
inutilisées |
table_name |
1000 |
261072 KO |
261056 KO |
16 KO |
0 KO |
Après la mise à jour :
nommer |
lignes |
réservé |
data |
index_size |
inutilisées |
table_name |
1000 |
261072 KO |
199672 KO |
16 KO |
61384 Article |
Statut
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.