Pergunta

Eu acho que eu estou experimentando um tempo limite de conexão de banco de dados com a minha ligação SQLite, mas não tenho certeza de como bater o tempo limite de conexão. O tempo limite de comando pode ser definido com ConnectionString.DefaultTimeout mas Connection.ConnectionTimout é apenas de leitura. Alguma sugestão?

Obrigado, Brian

Foi útil?

Solução

Ele é definido na seqüência de conexão: SqlConnection

Outras dicas

Exceder o tempo limite padrão (30 segundos) para consultas SQLite é um forte indício de que algo está errado na sua abordagem.

Tempos limite geralmente ocorrem quando há muitas conexões simultâneas. SQLite se comporta mal quando você tem gravação intercalada / ler transações.

Certifique-se de que você pedaço relacionada instruções SQL em uma única transação (os ganhos de desempenho pode ser x1000!).

Outra dica: por padrão - quando você iniciar uma transação (BeginTransaction) - o comportamento padrão é para obter um bloqueio de gravação imediatamente. Tente usar BeginTransaction versão (diferidos) em vez e especificar que pretende adiar a aquisição de um bloqueio de gravação até que seja realmente necessário. Isso ajudará você a se ter vários leitores, porque agora eles serão capazes de executar simultaneamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top