Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    come gestire connessioni a database?

    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?

  2. #2
    Se è un applicazione web utilizza i datasource e la connection pool del container.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Non c'è la soluzione perfetta a questa domanda, dipende sempre da quanti accessi conti di fare al database. Se sono tanti, l'apertura di un connection pool (come ti indicano) è una soluzione più efficiente in termini di risposta.
    Il pool si crea all'avvio dell'applicazione e si chiude prima dell'uscita (quindi devi avere un'apertura/chiusura controllata del tutto).
    Di contro, se sono previsti accessi una tantum è meglio creare la connessione al bisogno. Queste sono considerazioni che vengono fuori dal tipo di programma che devi fare, da dove lo usi e soprattutto dall'esperienza di progettazione che hai

  4. #4
    valia non sono completamente daccordo se sono previsti accessi una tantum puo sempre usare il pool di connessioni settando il numero massimo di connessioni molto basso ma così se il pool ha gia la connessione non la deve instanziare nuovamente ma restituisce quella che ha nel pool e credo che questo sia un vantaggio sia con una che con poche connessioni.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    si parli sempre di tuning, però io vedo in quel caso che se tu prevedi cmq un pool che istanzia mettiamo il caso 2 connessioni e di queste ne usi 1 una sola volta, in pratica facevi prima ad istanziare a richiesta, anziché gestire il pool di connessioni. Nel caso in cui non farai mai una connessione, hai aperto e chiuso 2 connessioni senza usarle. Ora sono casi limite e me ne rendo conto, ma se questo caso limite è la prassi capisci bene che un overhead, anche piccolo, per qualcosa che non è detto userai mai in alcuni ambiti non è ammesso (o meglio non è tollerabile).

    Le considerazioni riguardo al tuning dei pool vanno fatte in base al tipo di applicazione che si sviluppa, dove va a girare e soprattutto in base alle risorse che ha a disposizione. Poi sono sempre opinioni, infatti ho premesso che non c'è una soluzione perfetta, ma una soluzione dettata da esperienza e modo di operare, gestire un pool (che ti ricordo non è qualcosa che crei/gestisci/distruggi senza costi) a volte può crearti più problemi di quanti te ne risolve.

  6. #6
    Infatti ho detto non sono completamente daccordo nel senso che una applicazione web che utilizza un Db dubito che usi 1 connessione quindi sono daccordo con te ma sull'estremizzazione della cosa non nel caso più comune e normale.
    Ma fermiamoci che quì andiamo off topic e entriamo in filosofia anche se certe discussioni ogni tanto fanno bene.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.