• Bannato User Attivo

    question sul tempo di esecuzione query

    salve.. ho un dubbio che mi perseguita 😛

    Il tempo di esecuzione di una query (select o update) su una tabella di un DB è legata alle righe voci del database stesso?

    Per esempio, l'update di una voce su un DB con 10 colonne (ID, Nickname ecc) è più veloce rispetto ad una query di 50 colonne? Se si, la velocità è direttamente proporzionale (per esempio 1 secondo sulle 10 righe e 5 secondi sulle 50)?


  • User Attivo

    La gestione delle operazioni è affidato al DBMS (DataBase Management System), il motore che gestisce il database.
    Il DBMS controlla il database in modo da garantire accessi in scrittura e lettura molto rapidi.
    Quindi i tempi di esecuzione di una query si basano molto su come è implementato il DBMS, su come è fisicamente posizionato il database sul disco, i tempi di posizionamento della testina di lettura del disco ed altri fattori meccanici.
    Comunque tutti i DBMS, garantiscono tempi di accesso al database molto rapidi, sia con tabelle piccole o grandi.


  • User Attivo

    mmhh... non sono del tutto daccordo... dipende da come la tabella è disegnata da qali e quanti indici ci sono, dal tipo di operazione che si esegue (ad esempio le update sono più pesanti delle insert)... insomma... ci sono tantissimi fattori da prendere in considerazione, senza contare il numero di query eseguite in parallelo... insomma... su una tabella di 10 campi ci potrebbe volere piu' tempo di una di 50...


  • User Attivo

    E' quello che volevo dire, le velecità non sono direttamente proporzionali.
    Se una query viene eseguita in 1 secondo su 10 righe non è che su 50 righe ci bada 5 secondi.
    I DBMS adottano potenti algoritmi per evitare lunghi tempi d'attesa per l'accesso alle tabelle.
    Comunque, come dici tu CZero, "dipende da come la tabella è disegnata da quali e quanti indici ci sono, dal tipo di operazione che si esegue", questo dipende tutto dal DBMS, che deve ottimizzare al massimo ogni interazione.


  • Bannato User Attivo

    ho suddiviso la tabella in 7 parti e ho notato un sostanziale abbassamento del tempo di esecuzione.. circa un 80% in meno