Credo che la scelta non sia univoca e assoluta, ma dipende anche da quanti utenti fanno uso del database e quali risorse arrivano ad occupare.
Se si tratta di un'applicazione monoutente, sicuramente ti puoi permettere di mantenere la connessione al DB aperta quando avvii l'applicazione, e questo in generale dovrebbe valere - salvo casi particolari - per le tipologie di applicazioni "desktop".
La possibilità di aprire/chiudere connessioni dipende anche dalle potenzialità offerte dal DB sottostante e dalle librerie di accesso ai dati (ad esempio, il supporto al "connection pooling" può offrire incrementi significativi delle performance).