só mais uma coisa, definindo o CommandTimeout = 1000;

vc esta dizendo q vai aguardar 1000 segundos pela resposta do
servidor, se por acaso na hora em q vc for conectar o serividor estiver
indisponível,
sua aplicação ficará travada aguardando durante 1000 segundos.

Tome cuidado.

Em 27/11/06, Leandro <[EMAIL PROTECTED]> escreveu:
>
>   Cara,
>
> Quanto tive esse problema, recriava o indice clustered da tabela que tava
> causando o timeout...
> e fica ok...
>
> Não sei se é o seu caso...
>
> att,
>
> Leandro
>
>
> ----- Original Message -----
> From: Marcelo Alves
> To: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br>
> Sent: Monday, November 27, 2006 2:30 PM
> Subject: [delphi-br] Re: Problema Grave com Timeout - Urgente
>
> Bom, quanto a quebrar em várias transações menores, não tenho como
> fazer isso uma vez que devo manter a integridade dos dados gravados.
>
> Aumentei o connectiontimeout para 1000 conforme sugeriram abaixo...
>
> Agora e quanto às outras propriedades??? Não tem mais nada que devo
> me preocupar para evitar esses travamentos?
>
> Obrigado até agora gente.
>
> Att,
>
> Marcelo
>
> --- Em delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br>,
> "Gabriel Filho"
> <[EMAIL PROTECTED]> escreveu
> >
> > Uma dica
> >
> > qdo vc usa o transaction no adoconection, a tabela é bloqueada
> > automáticamente,
> > entaum como vc disse que tem operacoes que demoram muito pra ser
> > processadas,
> > analise, para ver se é possivel dividir essa transacao
> muito "grande" em
> > duas ou tres menores.
> >
> > Verifique tambem se vc consegue otimizar melhor seu scripts, tipo
> sub
> > consultas dentro de selects que retornam muito dados.
> > uma boa maneira de fazer isso é utilizando o studio mananger
> express, nele
> > tem uma ferramente que analiza seu scritp te retornando em %
> > qual do consumo de cada bloq de select count inner joins etc...
> >
> >
> >
> > espero ter ajudado
> >
> > Em 27/11/06, maniacapordelphi <[EMAIL PROTECTED]> escreveu:
> > >
> > > A primeira coisa q voce tem q saber é de onde vem a mensagem: do
> > > componente ADOConnection ou do Sql Server.
> > >
> > > Se for do ADO:
> > > No componente ADOConnection tem a propriedade ConnectionTime ->
> set
> > > para 1000
> > > Nos componente TADOquery e TADOStoredProc tem a propriedade
> > > CommandTime -> set para 1000
> > >
> > > Se for do Sql Server:
> > > Você tem q analisar a performance de todos os seus comandos
> através
> > > do Profile. Pode ser comandos mal projetados
> > >
> > > T+
> > > Mani
> > >
> > > --- Em delphi-br@yahoogrupos.com.br 
> > > <delphi-br%40yahoogrupos.com.br><delphi-br%
> 40yahoogrupos.com.br>,
> > > "Marcelo Alves"
> > > <delphigrupos@> escreveu
> > > >
> > > > Pessoal,
> > > >
> > > > Estou com uma bucha aqui pra resolver e preciso muito da ajuda
> do
> > > > grupo... vamos lá..
> > > >
> > > > No cliente onde trabalho, faço manutenção num sistema feito em
> D7
> > > com
> > > > Sql Server 2000.
> > > >
> > > > De uns dias pra cá, o sistema começou a dar timeout com bastante
> > > > frequência e quando acontecia isso o DBA verificava via scripts
> > > que
> > > > existia um processo bloqueando outro no sql server.
> > > >
> > > > Bom, quais foram meus passos para tentar descobrir qual é o
> > > problema
> > > > até agora:
> > > >
> > > > 1 - revisei as principais rotinas que sempre travam e também as
> > > > maiores e mais demoradas... num achei nenhum problema, mesmo
> > > porque
> > > > essas rotinas sempre funcionaram muito bem. O Sistema já está em
> > > > produção a mais ou menos 1 ano.
> > > >
> > > > 2 - estou revisando alguns códigos de acordo com alguns toques
> que
> > > > recebi de uma pessoa de uma outra empresa que integra o sistema
> > > deles
> > > > com o nosso, e que manja muito de sql server. Bom ele pediu para
> > > eu
> > > > revisar os momentos em que abro transações no servidor..
> > > >
> > > > Bom, tirei todas as aberturas de transação quando ao chamar
> > > > procedures que fazem somente selects... e mantive somente nos
> > > > momentos em que preciso alterar mais de uma tabela para
> garantir a
> > > > integridade dos dados...
> > > >
> > > > Bom, nesse lugares que mantive as abertura de transações, o
> > > código
> > > > fica assim:
> > > >
> > > >
> > > > If adoSistema.InTransaction Then
> > > > adoSistema.RollBackTrans ;
> > > >
> > > > adoSistema.BeginTrans;
> > > >
> > > > self.spGeral.Close ;
> > > > Self.spGeral.ProcedureName := 'NOME_PROCEDURE_01' ;
> > > > self.spGeral.Parameters.Refresh;
> > > >
> > > > //PASSO TODOS OS PARÂMETROS DA PROCEDURE 01
> > > >
> > > > //Executa a SP
> > > > Self.spGeral.ExecProc ;
> > > >
> > > > self.spGeral.Close ;
> > > > Self.spGeral.ProcedureName := 'NOME_PROCEDURE_02' ;
> > > > self.spGeral.Parameters.Refresh;
> > > >
> > > > //PASSO TODOS OS PARÂMETROS DA PROCEDURE 02
> > > >
> > > > //Executa a SP
> > > > Self.spGeral.ExecProc ;
> > > >
> > > > //Grava os Dados no bd
> > > > adoSistema.CommitTrans ;
> > > >
> > > > Até aí vocês viram algum erro????
> > > >
> > > > Bom, outra coisa, eu estive olhando algumas propriedades do
> > > > TADOConection e gostaria de saber como vocês configuram para
> > > comparar
> > > > com as minhas aqui...
> > > >
> > > > E nos casos de selects onde eu porderia usar tabelas
> temporárias..
> > > > existe alguma propriedade que faça com que meu componente
> adoQuery
> > > > traga os dados sem bloquear a tabela??? Pois tenho casos onde a
> > > query
> > > > fica aberta durante processos demorados e acho que isso está
> > > gerando
> > > > travamento no banco...
> > > >
> > > > A minha maior dúvida é o que fazer para evitar esses travamentos
> > > no
> > > > banco...
> > > >
> > > > Se puderem me ajudar ficarei muito grato...
> > > >
> > > > Marcelo.
> > > >
> > >
> > >
> > >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]

Responder a