in
La comunità italiana dedicata a Sviluppatori e Architetti IT delle piattaforme Windows

Prestazioni database

Ultimo messaggio ricevuto il 29-03-2007 16.13 da devspy. 3 risposta(e).
Pagina 1 di 1 (4 elemento/i)
Ordina messaggi: Precedente Successivo
  • 15-02-2007 9.23

    • luck
    • Utente Top 500
    • Registrato il 14-02-2007
    • Messaggi 2

    Confused [8-)] Prestazioni database

    Buongiono a tutti, nuovo di questo forum, ho alcuni quesiti riguardanti le prestazioni connettendo un database access:

    - influisce sulle prestazioni il valore del cursortype? Se sì, quale valore dà velocità maggiori?
    - se devo solo leggere dati da un database è meglio mettere il valore locktype=1 oppure è indifferente?
    - se devo estrarre un solo campo da un database mi conviene creare una query tipo "select * ... " (che seleziona tutto) e mi scelgo poi ciò che mi serve oppure è meglio usare una "select nome from clienti" (ad esempio)?
    - se non necessario, è meglio non ordinare i dati di un RECORDSET?

    Grazie mille per la risposta
    • Log
  • 15-02-2007 11.14 In risposta a

    • luck
    • Utente Top 500
    • Registrato il 14-02-2007
    • Messaggi 2

    Altro dubbio

    Scusate ma ho un altro dubbio:
    per un database che contenga circa 5000 record con più tabelle ha più senso usare access (più semplice) o MySQL (più complesso per me)????
    E che diversità di prestazioni teoriche si potrebbero avere tra i due?

    Thanks
    • Log
  • 29-03-2007 16.06 In risposta a

    Re: Prestazioni database

    1. Si, il tipo di cursore utilizzato influisce sulle prestazioni, ma soprattutto sul tipo di operazioni che puoi eseguire sul Recordset. adOpenForwardOnly è il più veloce in assoluto (è il default) ma non è aggiornabile. adOpenDynamic è il più pesante in termini di risorse richieste e prestazioni.
      Per approfondimenti, leggi l'articolo Understanding ADO's Default Cursor Type.
    2. Se devi solo leggere i dati, è bene impostare LockType = 1 (cioè, ReadOnly) altrimenti blocchi inutilmente i dati. Ad ogni modo, non dovrebbe influire sulle prestazioni.
    3. Sempre meglio utilizzare l'istruzione SQL più restrittiva. In parte è il driver (o il database, dipende dai casi) ad eseguire ottimizzazioni delle query, ma ovviamente il DB non è in grado di sapere come userai i dati, quindi se chiedi "troppo" e poi scarti alcuni dati, forzerai operazioni inutili e sprecherai risorse.
    4. Anche l'ordinamento è un'operazione che richiede tempo e risorse. Se non serve, come tutte le cose, meglio farne a meno... Comunque, molto può dipendere dalla presenza o meno di indici sulle colonne per le quali esegui l'ordinamento. Se è presente un indice, l'inserimento di record è più lento, ma la ricerca e l'ordinamento per quella colonna ne guadagnano in modo esponenziale.
    • Log
  • 29-03-2007 16.13 In risposta a

    Re: Altro dubbio

    5.000 record non è una dimensione esagerata, a meno che in ogni record non ci siano colonne di tipo binario contenenti, ad esempio, immagini di grandi dimensioni. Quindi, se il record contiene "normali" dati alfanumerici, Access può andare benone.

    Contrariamente, per esigenze più tecniche o per motivi di scalabilità (l'applicazione ed il DB potrebbero crescere in futuro) sarebbe senz'altro meglio usare MySQL. Oppure - perché no? - la versione gratuita di SQL Server 2005 (Express Edition).

    Sia MySQL che SQL Server sono ottimi investimenti per il futuro... ma se lavori con prodotti Microsoft, SQL Server 2005 è la scelta giusta.
    • Log
Pagina 1 di 1 (4 elemento/i)
Prelevato da http://www.devspy.com/forums/p/4433/5331.aspx
DevSpy.com 6.0 © 2001-2008 - Alcuni Diritti Riservati
Salvo diversa indicazione, tutti i contenuti sono pubblicati sotto licenza "Creative Commons Attribution-Share Alike 3.0"