Sintomas

Assuma que tem uma tabela que contém uma coluna de objeto grande (LOB) no Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 ou SQL Server 2014. Quando atualizar a coluna LOB com um tamanho menor de dados LOB e tentar recuperar o espaço não utilizado utilizando os seguintes métodos:

  • DBCC SHRINKDATABASE / DBCC SHRINKFILE

  • ALTERAR ÍNDICE REORGANIZAR-SE COM (LOB_COMPACTION = ON)

Nesta situação, o espaço não-americano não pode ser recuperado.

Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Confira as últimas atualizações cumulativas do SQL Server:

Solução

Para contornar esta questão, utilize as seguintes soluções alternativas:

  • Exporte todas as linhas para uma nova mesa e mova as linhas para trás. Isto reorganiza os dados lob e liberta o espaço não-usado.

  • Utilize o DBCC SHRINKFILE com a opção EMPTYFILE para mover todos os dados para um ficheiro de dados recém-adicionado e, em seguida, remover ficheiros de dados antigos. Isto reorganiza os dados lob lá libertando o espaço não-used.

Mais Informações

O exemplo a seguir mostra-lhe o espaço não utilizado utilizando o comando TSQL sp_spaceused 'table_name' antes e depois de atualizar a coluna LOB com um tamanho menor de dados LOB:Antes de atualizar:

nome

linhas

reservado

dados

index_size

não éused

table_name

1000

261072 KB

261056 KB

16 KB

0 KB

Depois de atualizar:

nome

linhas

reservado

dados

index_size

não éused

table_name

1000

261072 KB

KB de 199672

16 KB

61384 KB

Estado

A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.