none
Timeout RRS feed

  • Pergunta

  • Bom dia...

     

    Temos uma aplicação que executa uma Stored Procedure com um Timeout considerável, definido pela aplicação em 400.

    Porém estava retornando um erro de tempo excedido. Dobramos e o erro se repete, dobramos novamentem, ou seja, quadruplicamos o valor inicial e o erro permanece.

    Gostaria de saber se há alguma configuração no servidor SQL que emite o erro de timeout antes do valor definido pela aplicação.

    Obrigado.


    []s.

    Alan Cossari.

    Twitter Facebook
    • Movido Gustavo Maia Aguiar segunda-feira, 4 de julho de 2011 13:03 (De:SQL Server - Desenvolvimento Geral)
    segunda-feira, 4 de julho de 2011 12:24

Respostas

  • Olá Alan,

    Não há outra possibilidade. Mesmo o Query Governor já é perigoso. Se você tiver qualquer comando que demore mais tempo ele será abortado. Isso inclui comandos de backup, rotinas de reindexação, etc. Acho que não há alternativas senão tratar na aplicação mesmo.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta Alan Cossari terça-feira, 5 de julho de 2011 11:22
    segunda-feira, 4 de julho de 2011 18:45

Todas as Respostas

  • Bom Dia,

    Normalmente os bancos de dados não fazem esse tipo de controle (ainda que alguns dêem possibilidades para tal). Um processo pode consumir desde alguns ms para rodar uma consulta ou até horas (quem sabe dias) para fazer um processo de ETL. Cabe a cada um delimitar quanto tempo vai aguardar para consumir os dados que deseja e não ao banco arbitrar um tempo máximo (que muitas vezes pode não satisfazer a todas as situações).

    Você pode no máximo configurar o Query Governor Cost Limit para que uma consulta rode até no máximo um determinado tempo e caso não consiga, o SQL Server lance um erro.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 4 de julho de 2011 13:02
  • Obrigado pela resposta Gustavo, fiz o teste aqui, defini o Query Governor Cost Limit para 100 e foi lançada a seguinte exceção: The query has been canceled because the estimated cost of this query (412) exceeds the configured threshold of 100. Contact the system administrator.

     

    Porém o erro que está sendo gerado no cliente é Tempo excedido.

    Existe alguma outra possibilidade?


    []s.

    Alan Cossari.

    Twitter Facebook
    segunda-feira, 4 de julho de 2011 13:20
  • Olá Alan,

    Não há outra possibilidade. Mesmo o Query Governor já é perigoso. Se você tiver qualquer comando que demore mais tempo ele será abortado. Isso inclui comandos de backup, rotinas de reindexação, etc. Acho que não há alternativas senão tratar na aplicação mesmo.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta Alan Cossari terça-feira, 5 de julho de 2011 11:22
    segunda-feira, 4 de julho de 2011 18:45