Eu tenho uma tabela com 64 milhões de linhas levando 4,3 GB em disco para seus dados.
Cada linha tem cerca de 30 bytes de colunas inteiras, mais uma NVARCHAR(255)
coluna variável para texto.
Eu adicionei uma coluna NULLABLE com data-type Datetimeoffset(0)
.
Atualizei esta coluna para cada linha e certifiquei-me de que todas as novas inserções colocassem um valor nesta coluna.
Uma vez que não havia entradas NULL, executei este comando para tornar meu novo campo obrigatório:
ALTER TABLE tblCheckResult
ALTER COLUMN [dtoDateTime] [datetimeoffset](0) NOT NULL
O resultado foi um ENORME crescimento no tamanho do log de transações - de 6 GB para mais de 36 GB até ficar sem espaço!
Alguém tem alguma ideia do que diabos o SQL Server 2008 R2 está fazendo para que esse comando simples resulte em um crescimento tão grande?