Зависит от того, насколько часто приложение обращается к БД.
Если часто, то лучше использовать одно общее соединение. Если редко, то лучше закрывать, чтобы освободить ресурсы.
Например, в веб-приложениях, как правило, открывается отдельное соединение на каждый HTTP-запрос и в нем выполняются несколько SQL запросов.
Также почитайте про
connection pool.
Грубо говоря, это способ оптимизации приложения, при котором есть некоторый пулл соединений. При открытии соединения, если такое уже есть в пулле, оно берется оттуда (соответственно, не тратятся ресурсы на его инициализацию). При закрытии соединения оно возвращается в пулл и может быть использовано повторно. Инфраструктура .NET Framework управляет пуллом соединений в соответствии с указанными Вами настройками.