Sto usando ad esempio c3p0 con alcuni "maxStatements" definiti per la cache di preparazioneStato. Cosa fa realmente questa memorizzazione nella cache? Che tipo di dati memorizza nella cache. A quale livello (db, application, ..)? Sarà bello capirlo dall'esempio. Per esempio, ho una queryCache di preparazione preparate - cosa vuol dire (come funziona)
selezionare * da qualcosa dove somecolumn =?
Ora lo invio in una dichiarazione preparata che non viene memorizzata nella cache. E ora lo invio e viene memorizzato nella cache. Che differenza. Cosa è successo nel primo caso e nel secondo. Cosa viene inviato al server DB nel primo caso e nel secondo?
Grazie.
Esiste qualche regola empirica? La mia app esegue in sequenza circa 100 sqls diversi, quindi suppongo che con il pool PreparedStatement uguale a 50 il rapporto di hit sarà 0 (LRU?). – j23
la cosa più semplice da fare è usare 'maxStatementsPerConnection' e impostarlo sul numero di PreparedStatements _frequentemente usato_ dall'applicazione. (che è ignorare le istruzioni utilizzate durante l'inizializzazione delle app, o molto meno frequentemente utilizzate per scopi amministrativi, ecc.) se l'app esegue sempre in sequenza 100 distinti PreparedStatements, quindi prova a impostare 'maxStatementsPerConnection' su 100, ma c'è un rischio che la memoria e l'impronta delle risorse di ciò supereranno qualsiasi beneficio e starai meglio senza. devi vedere. –