Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    50

    ottimizzazione query mysql con thread

    Salve a tutti!

    avrei bisogno di un parere!
    Stò lavorando su un programma java che interroga il database. Le query sono semplici e svariate, select, update, delete, insert.
    Mi stavo chiedendo se era utile o meno far eseguire a un thread le query sul database. L'ottimizazione c'è o è inutile?

    Grazie mille!

  2. #2

    Re: ottimizzazione query mysql con thread

    Originariamente inviato da AF.D.O.C
    Salve a tutti!

    avrei bisogno di un parere!
    Stò lavorando su un programma java che interroga il database. Le query sono semplici e svariate, select, update, delete, insert.
    Mi stavo chiedendo se era utile o meno far eseguire a un thread le query sul database. L'ottimizazione c'è o è inutile?

    Grazie mille!
    Al DBMS non interessa se le query partono da un thread a parte o meno, ciò che può influire sulle prestazioni sono cose del tipo:
    -utilizzi o meno un pool di connessioni ?
    -utilizzi in maniera efficace le transazioni evitando come la peste l'autocommitt statement per statement?
    e invito chi legge ad elencarne altre.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,482
    Originariamente inviato da AF.D.O.C
    Mi stavo chiedendo se era utile o meno far eseguire a un thread le query sul database. L'ottimizazione c'è o è inutile?
    Dipende... chiunque esegue le istruzioni che hai indicato, che sono le istruzioni base SQL, per cui una valutazione in questo senso andrebbe fatta avendo qualche dettaglio in più sul tipo di operazioni che esegui, la mole di dati interessata, i possibili blocchi, ecc.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    50
    Intanto grazie per aver risposto!

    e poi scusa la mia ignoranza, ma cosa intendi per autocommit statement per statement?

    se ti riferisci al fatto che per ogni colonna della tabella di cui voglio il valore faccio una get...allora l'ho fatto!! ma non conosco altri metodi! =(

    per quanto riguarda le connessioni per evitare problemi apro la connessione ogni volta che faccio una query e la richiudo a transazione terminata =P

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    50
    Per alka

    Le query sono molto semplici! per quanto riguarda la mole di dati...bhè quella è enrome!

  6. #6
    Originariamente inviato da AF.D.O.C
    Intanto grazie per aver risposto!

    e poi scusa la mia ignoranza, ma cosa intendi per autocommit statement per statement?

    se ti riferisci al fatto che per ogni colonna della tabella di cui voglio il valore faccio una get...allora l'ho fatto!! ma non conosco altri metodi! =(

    per quanto riguarda le connessioni per evitare problemi apro la connessione ogni volta che faccio una query e la richiudo a transazione terminata =P
    Intendo proprio quello che mi pare aver capito tu faccia, cioè apri e chiudi una singola transazione (e addirittura una connessione) per ogni statement di select/update/insert...
    A meno che tu non abbia proprio necessità di committare statement per statement, sarebbe bene raggruppare in transazioni, iniziate e committate o rollbackate esplicitamente (passami gli italianismi), tutti gli statement relativi ad una macro operazione effettuata dal software.
    A seconda del framework o della libreria che usi il default potrebbe essere l'autocommit e cioè l'avere appunto una transazione per ogni statement.
    Il raggruppamento logico degli statement oltre ad essere consigliato dal punto di vista prestazionale ti assicura anche che il tuo applicativo non lasci mai delle operazioni "appese" sul database, ma le faccia o completamente o per nulla (in caso di problemi).
    Ti faccio un esempio banale. Supponi di avere sul database una tabella utenti cui sono associate altre entità come ad esempio i ruoli. Tipicamente il tuo applicativo potrebbe avere un metodo addUser, che nella sua implementazione deve non solo aggiungere l'utente nell'apposita tabella, ma anche ad esempio un record nella tabella utente_ruolo (se supponiamo che essa modelli una relazione molti a molti). Ora..se tu usi l'autocommit può accadere che qualcosa vada storto proprio fra l'inserimento nella tabella utente e quello nella tabella utente_ruolo, lasciando le cose a metà sul database. Se invece utilizzi una transazione singola per eseguire le due operazioni (che corrispondono ad un'unica operazione del tuo software) questo non può accadere.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    50
    scusami ma ho la necessita di fare questo.
    Il progetto a cui stò lavorando interagisce solo ed esclusivamente con l'utente, quindi le mie query vanno in base a quello che l'utente richede. Per di piu stò considerando il fatto che ci siano piu utenti che contemporaneamente lavorano sullo stesso database.

    Insomma fare come dici te non è fattibile nel mio caso..se ho ben capito!

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    50
    Per quanto riguarda il tuo esempio, quello gia lo faccio!!! Ovviamente se eseguo una query su una tabella che comporta modifiche su altre vengono fatte contemporaneamente! =p

  9. #9
    Originariamente inviato da AF.D.O.C
    Per quanto riguarda il tuo esempio, quello gia lo faccio!!! Ovviamente se eseguo una query su una tabella che comporta modifiche su altre vengono fatte contemporaneamente! =p
    Se per contemporaneamente intendi in un'unica transazione di database allora è ok, altrimenti "contemporaneamente" ha poco significato a mio avviso.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    50
    Si scusami il termine è effettivamente sbagliato!!
    ma intendo un'unica transazione!

    Quindi aggiungere i thread è una cosa inutile! =)

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 © 2026 vBulletin Solutions, Inc. All rights reserved.