Но, с другой стороны, я бы слишком осторожно открывал и закрывал соединения. Это намного дешевле с пулом соединений, чем без него, но даже с пулом менеджер пула может решить увеличить или уменьшить пул, превратив его в дорогостоящую операцию.
Мое общее правило - открывать соединение, когда пользователь инициирует какое-либо действие, выполнять работу, а затем закрывать соединение, прежде чем ждать следующего ввода пользователя. Для любого данного нажатия кнопки «Обновить» или чего-либо другого, у меня обычно будет только одно соединение. Но вы определенно не хотите держать соединения открытыми во время ожидания ввода пользователя, если вы вообще можете помочь ему по всем причинам, упомянутым другими. Вы можете буквально подождать несколько дней, прежде чем пользователь нажмет другую клавишу или коснется другой кнопки - что если он оставит свой компьютер включенным и уйдет в отпуск? Привязка ресурса к непредсказуемому промежутку времени - плохая новость. В большинстве случаев истекшее время ожидания ввода пользователя намного превысит время выполнения реальной работы.