SQL Server 2005: recuperando espaço LOB

2

Eu tenho uma tabela interessante em um dos meus DBs que está me confundindo.

A tabela em questão tem algumas colunas do tipo LOB (dois nvarchar (max) e um texto) e parece que há alguns problemas com espaço estranho acontecendo.

desta consulta:

SELECT type_desc,
       SUM(total_pages) *8 [Size in kb]
FROM  sys.partitions p JOIN sys.allocation_units a
ON  p.partition_id = a.container_id
WHERE p.object_id = OBJECT_ID('asyncoperationbase')
GROUP BY type_desc; 

Eu recebo:

type_desc           Size in kb
IN_ROW_DATA          27936
LOB_DATA             1198144
ROW_OVERFLOW_DATA   0

(há pouco menos de 8000 linhas na tabela, cada linha tem um comprimento de dados de ~ 10k - sem contar os dados de LOB)

aqui é algo interessante:

SELECT ( SUM(DATALENGTH(aob.WorkflowState)) +
   SUM(DATALENGTH(aob.[Message]))+
   SUM(DATALENGTH(aob.[Data])) ) / 1024

FROM AsyncOperationBase aob

retorna:

76617

Como estou lendo - parece que os ~ 75MB de dados de LOB estão sendo usados em um espaço para serem armazenados - eu esperaria uma sobrecarga, mas não sairia tanto assim.

Obrigado,

Andrew

    
por AndrewD 13.11.2009 / 17:42

1 resposta

1

Ok, acho que atualizaria isso caso isso ajude alguém. Acabou trabalhando com o suporte do MS nesta questão, e aparentemente há um thread de trabalho em segundo plano que é responsável por liberar o espaço. Neste caso, parou de funcionar. Correção fácil era reiniciar o servidor SQL.

Felicidades

Andrew

    
por 20.01.2010 / 21:50

Tags