Array
(
)

Acesso ao banco de dados

Mario Jr
   - 11 nov 2015

Boa tarde!
Estou com um problema na hora de selecionar dados através de DataTable para um DataGridView em C# (sistema cliente servidor).
Additional information: Erro ao tentar selecionar os dados! Tempo limite expirado. O período de tempo limite foi atingido antes que fosse obtida uma conexão do pool. Isso pode ter ocorrido porque todas as conexões do pool estavam em uso e o tamanho máximo do pool foi atingido.
Como posso resolver este problema?
Desde Já agradeço...

Jothaz
   - 11 nov 2015

Podem ser inúmeros fotores.

1-Sua srtring de conexão esta com usuário e senhas corretos?
2-Você consegue acessar o BD com Management Studio?
3-Seu BD esta configurado para acesso por TCP/IP?

Enfim sem um conhecimento maior do ambiente só posso conjecturar.

Mario Jr
   - 12 nov 2015

Jothaz, boa tarde!

Todas as suas questões estão ok!

Na maioria das consultas tenho sucesso, esse problema acontece em um único caso que tenho que fazer vários acessos no banco para preencher um datagridview com uma quantidade grande de dados.

Jothaz
   - 12 nov 2015

Então já temos um caminho, provavelmente esta consulta/procedimento pode esta com algum problema.

Como ela é executada: expressão SQl via código, stored procedure ou LINQ?

Uma boa forma de monitorar é usar o Profiler do SQL Server, pois assim você "vê" tudo o que esta sendo requisitado ao banco de dados.

Mario Jr
   - 12 nov 2015

As consultas são feitas por expressão SQL via código.

Fiz um teste aqui aumentando o MAX POOL SIZE na ConnectionString e acabou o problema. Fiz assim:

Pooling=true; Min Pool Size=0;Max Pool Size=200;

Será que pode sofrer algum efeito colateral prejudicando a aplicação por ter mudado este parâmetro?

Jothaz
   - 12 nov 2015

Impossível dar um parecer sem acesso ao ambiente, pois eria no minimo leviano.

Salva raras exceções é aconselhável tentar otimizar a consulta que aumentar o timeout, pois dependendo do cenário: quantidade de acesso, quantidade de bytes trafegados entre outras coisas, podem afetar negativamente a performance.

Com já tinha sugerido use o Profiler do SQL, pois é a única forma de verificar como o servidor esta se comportando.