Sto facendo un'applicazione web che fa diversi accessi ad un database.

E' meglio:
1- aprire una connessione all'inizio della sessione ed utilizzare sempre quella
2- creare/chiudere una nuovo connessione ad ogni query eseguita
3- Altro?

Nel caso 1, la chiusura della connessione dove andrebbe fatta?