Linq to SQL соединения - PullRequest
       13

Linq to SQL соединения

2 голосов
/ 12 марта 2009

Я использую Linq to SQL для довольно сложного сайта, и после запуска у нас было несколько тайм-аутов базы данных. Первое, что я заметил, было довольно большое количество подключений к базе данных.

Исходя из фона ADO.net, мы использовали его для кодирования, чтобы любой сайт использовал только одно или два пула соединений, и это приводило к приемлемой производительности даже при небольшом количестве одновременных пользователей.

Итак, мой вопрос, был ли этот старый способ сделать это некорректным, ИЛИ есть ли способ сделать это LINQ? Кажется, что наши проблемы с производительностью вызваны таким большим количеством подключений к БД, но если бы это была проблема, я бы подумал, что это будет упомянуто во всех руководствах по LINQ.

Есть предложения?

1 Ответ

3 голосов
/ 12 марта 2009

Я предполагаю, что вы сохраняете DataContexts и не вызываете Dispose для них, когда закончите (или оставляете их, по крайней мере).

Скорее, вы должны инициализировать ваш DataContext, выполнить вашу операцию, а затем утилизировать ее, когда закончите. Вы не должны хранить ссылку на него между операциями.

Желательно, чтобы вы использовали оператор using для обработки вызова IDisposable.

Что касается пула подключений, то SqlClient объединяет соединения по умолчанию, поэтому, если вы явно не отключите его, вы должны уже воспользоваться этим. Конечно, если вы не освобождаете соединения, которые используете, то пул займет у вас столько времени.

...