Array
(
)

Para que serve o Arquivo Log no SqlServer ????

Andreprogdelphi
   - 28 out 2004

Caros Amigos, Estou migrando meus softwares de Paradox p/ SqlServer, portanto, desenvolvi uma tela de importação do Banco Paradox p/ o SqlServer.

Pois Bem, por Exemplo, por eu estar executando estas rotinas constantemente em ambiente de teste o Arquivo MDF esta com 30MB e Arq. LOG esta com 500MB , sem brincadeira, por várias vezes o que eu faço, desativo o Arq. MDF apago o LOG e Ativo-o novamente o SQL reclama que não existe o Arq. LOG porém me pergunta se eu quero criar um novo, simplesmente eu digo que sim e continuo a utilizar o Sistema e Banco normalmente, DAÍ A PERGUNTA ! PARA QUE SERVE O ARQUIVO LOG ???.

E também estou procurando uma forma, ou ferramente, do SQL enxugar o arquivo LOG, pois eu já tenha clientes utilizando o SQL e quando os mesmos me Enviam Backups a situação não é muito diferente, Me aparecem Arquivos MDF de 15MB e LOG de 80 à 90MB, Que Loucura é essa ??

Já que eu não vou pedir para os meus Clientes que são leigos na Informática, Mal sabem usar o meu Software, imagine só eu pedir para um usuário desses apagar o arquivo LOG e ele me Apagar o MDF, Ainda não estou ficando Louco :P

Portanto se alguém poder me Tirar essas dúvidas eu agradeceria muito !!
Desde já Muito Obrigado !!

André
Programador Delphi

Aroldo Zanela
   - 28 out 2004

Colega,

Acho melhor você ler algum material específico para entender o funcionamento do LOG. Para manter o LOG ´enxuto´, basta efetuar backups (via JOB).
Para truncar o LOG (jogar para o limbo), basta:

#Código

backup log nome_do_banco with no_log


Isto não vai diminuir o tamanho físico, mas você você pode (mais não deve) utilizar recursos para encolher o banco no EM ou QA.

para monitorar o tamanho dos logs e seu percentual de utilização, use:

#Código
dbcc perflog


Aqueles com mais de 30¬ de utilização, devem ser backup(eados), truncados ou redimensionados para melhorar a performance.

Verifique suas rotinas visando não gerar LOG desnecessariamente.

Andreprogdelphi
   - 29 out 2004

Agradeço a Informação, Más ...

Como posso saber se estou gerando LOG Desnecessariamente.

Minhas Rotinas São bastate simples.
Estou utilizando DbExpress, ou seja, Com um Comp. de Conexão, Provider, ClientDataSet e DataSource.

E um While bem simples ...

while not TTable.eof do
begin
TClientDataSet.Insert;
campo = campo;
campo = campo;
campo = campo;
TClientDataSet.Post;

TTable.next;
end;

e no evento BeforePost do TClientDataSet tem o comando
ApplyUpdates(0);

É Apenas Isso

Será que estou gerando LOG Desnecessariamente, nesta simples rotina ??

Desde já Agradeço !!

Felipe_cduarte
   - 05 nov 2004

Fala Andre blz ??

Bom cara, o arquivo de log é usado pra armazenar todos as operações realizadas no BD. Se você deseja visualizá-lo, terá que usar softwares como o ApexSQL ( www.apexsql.com ) que é mto bom ou o Log Explorer. Se bem eu entendi, vc está fazendo a conversão do BD, então deve ter informações de vários anos de seu cliente. O log deve estar deste tamanho por causa dos varios inserts que são realizados... mas quando vc finalizar a conversão, na hora q o cliente for realmente usar, o log nao crescerá desta forma, pode ficar trankilo :P ... sobre a diminuiçao do log, vc pode pesquisar até aki no forum mesmo, onde o assunto já foi discutido.

Espero ter ajudado

[]´s