Update não atualizou

09/08/2011

Amigos, boa tarde. Fiz um update e demorou muito(mais de 20 horas)  e o banco abortou, não atualizando nada. Gostaria de criar índices, mas nunca fiz usando o Management do Sql Server e se possível fazer o update em blocos, mas assim fica difícil, pois ele depende da leitura de outra tabela para fazer o update. Abaixo minha sql: update conhecimento_carga set data_emissao_conhecimento = (select convert(varchar(40),opera.data,21) from opera where opera.contrato = conhecimento_carga.numero_conhecimento and (opera.data >= '11/01/2010' and opera.data <= '02/28/2011')) where data_emissao_conhecimento = '1899-12-30 00:00:00.000'

Respostas

09/08/2011

Pjava

Esqueci, esse é o erro que deu após 20:00h     Msg 1105, Level 17, State 2, Line 1
Could not allocate space for object '<temporary system object: 423779197452288>' in database 'tempdb' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.
Responder Citar

09/08/2011

Marco Pinheiro

Tente criar os seguintes indices:


create index idx_conhecimento_carga on conhecimento_carga (data_emissao_conhecimento)
create index idx_conhecimento_carga on conhecimento_carga (numero_conhecimento)
create index idx_opera on opera (contrato, data)
create index idx_opera on opera (data)

Como o seu processo é de migração, pode ocorrer destes indices serem prejudicias ao realizar outros comandos (SELECT, UPDATE, INSERT), vai depender do seu programa. Então avalie se compensa mantê-los na base.
Att.,
Marco.
Responder Citar