Pergunta

Ao desenvolver um aplicativo (web, ganhar, seja qual for), que faz um monte de acesso a dados, é melhor manter o seu objeto de acesso de dados aberto para o comprimento do pedido (ou seja, fazer muitas coisas em uma linha, em seguida, fechá-lo quando você terminar), ou abertura manter e fechar novos?

protected aDataContext dc = new aDataContext();

vs

private aObject GetInfo(...) {...}

Eu acho que a primeira seria melhor para o desempenho; mas parece que uma má prática.

Foi útil?

Solução

Normalmente, você deve abrir uma nova conexão para cada unidade de trabalho, usá-lo e, em seguida, fechá-lo o mais rápido possível. Internamente .NET (ou ADO ou ODBC ou qualquer outro) vai reunir conexões para você, desde que a seqüência de conexão é o mesmo, portanto, é realmente muito eficiente. Há outras questões a ter em conta - especialmente transações -, mas, em geral, é melhor seguir este padrão de open-do-perto e deixe .NET gerenciar o pool de conexão.

Outras dicas

Melhor usar um pool de conexão. manter um número limitado de conexões abertas, tanto quanto você puder. Abrindo uma conexão é caro, mas ter milhões conexão aberta pode matar seu servidor. você deve comparar o seu cenário para melhor resultados ....

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