/ / Qual o tamanho que um arquivo de log obtém depois de atualizar todos os campos da tabela de banco de dados? - sql-server, sql-server-2005, arquivos de log

Qual o tamanho que um arquivo de log obtém após atualizar todos os campos da tabela de banco de dados? - sql-server, sql-server-2005, arquivos de log

Minha pergunta geral é, digamos que você tenha um SQL ServerBanco de dados de 2005 com 20G de tamanho e um arquivo de log vazio. Se você executar uma série de atualizações que tocarão cada tabela e cada linha exatamente uma vez, o arquivo de log crescerá para o mesmo tamanho do banco de dados? em outros fatores?

Eu estou fazendo essa pergunta por causa de um banco de dadosEstou executando um banco de dados usado por algum software proprietário. Atualizações são feitas para cada tabela e cada campo. O software não tem uma saída detalhada, apenas uma caixa de seleção para "não feito" / "feito". Não há saída descritiva, estou tentando descobrir como saber se está perto do fim.

Então, é provável que o arquivo de log seja do mesmo tamanho queo banco de dados quando tudo foi tocado? Ou o arquivo de log contém informações diferentes que não dependem do tamanho do banco de dados dessa maneira?

Respostas:

5 para resposta № 1

Como regra geral, o tamanho do log gerado para qualquer atualização é de cerca de 1,5x o tamanho da atualização. Então, se você atualizar 20Gb de dados, você gera 30Gb de log.

Mas há algumas coisas a considerar:

  1. Tamanho do log gerado não precisa necessariamentetraduz para o tamanho do arquivo de log. No modelo de recuperação SIMPLE, o arquivo de log usado pode ser reciclado automaticamente assim que a transação for confirmada (omitindo alguns detalhes por brevidade), de modo que o tamanho de log de 30 gb pode ser armazenado em um arquivo de 1 gb, reciclando continuamente o log usado. modelo de recuperação, o log é reciclado de forma semelhante quando um backup de log de banco de dados é executado. não "t atualizar tudo em uma transação, seu log deve reciclar e não crescer.

  2. Algumas operações podem ser registradas minimamente. TRUNCATE, INSERT BULK são os exemplos típicos. O registro mínimo leva uma pequena fração do registro normal.

Agora você deve estar olhando para o percentual de log usado (DBCC SQLPERF(logspace)) e também monitorar se eventos de crescimento de log estão ocorrendo.


0 para resposta № 2

Não é a resposta que você está procurando, mas eu acho que é improvável que se relacione com o tamanho do banco de dados de qualquer maneira significativa. Apenas espere. :)