|

CONNESSIONE AL DATABASE: QUALE USARE?

Ecco
un grafico che riassume i risultati:

Come
si può vedere i risultati migliori (ovvero tempi
minori di esecuzione) si sono avuti utilizzando una
connessione OLE-DB MAPPATH, indipendentemente
dal tipo di selezione utilizzata.
La
seconda scelta migliore è l'accoppiata DSN
- Select (spesso non praticabile in quanto richiede
l'intervento del provider per ativare il dsn stesso),
seguita da OLEDB PERCORSO - Stored e DSN -
Stored
Come
si può vedere il metodo che normalmente si utilizza
(mappath + select) è uno dei 'peggiori', seguito
solo da PERCORSO - Stored
In
realtà si tratta di differenze davvero minime
(pochi millesimi di secondo...) di cui l'utente nemmeno
si accorge e di cui forse non serve nemmeno preoccuparsi.
Comunque rimane il fatto che esistono delle differenze
fra i sistemi citati. In particolare il driver OLE-DB
risulta effettivamente più veloce rispetto agli
altri metodi.
La
stessa Microsoft
conferma le migliori performance dell'OLE-DB rispetto
al normale ODBC.
Per quanto riguarda invece un'introduzione all'OLE-DB
consiglio il i seguenti link:
http://www.microsoft.com/Italy/msdn/library/
ado200/mdaprv01_2277.htm
http://www.aspitalia.com/articoli/db/ole-db.asp
Ricordiamo
comunque che alla fine ciò che fa la differenza
non sono tanto quei centesimi di secondo nell'esecuzione
delle pagine asp: certamente anche la velocità
in esecuzione influisce, ma è decisamente piu'
importante l'affidabilita' del server, la velocita'
di risposta, la banda passante garantita, il carico
di lavoro cui è sottoposto il server stesso (ovvero
il numero di siti che ospita)...
Per
quanto riguarda invece la distinzione fra select
e stored procedure non si hanno apprezzabili
differenze: nel caso di connessioni OLEDB - Mappath
è indifferente. Nel caso di OLEDB - Percorso
comporta invece un miglioramento delle prestazioni.
In tutti gli altri casi invece rallenta l'esecuzione
delle pagine.
Personalmente
continuo ad utilizzare il consueto metodo di specificare
direttamente nel codice l'istruzione SQL da eseguire,
sia per una maggior chiarezza nella lettura del codice
sia per evitare di dovermi scaricare il database ogni
volta che modifico la stringa di selezione.
Note
finali
Occorre comunque sottolineare come i risultati potrebbero
variare a seconda di numerosi altri fattori: per esempio
l'esecuzione quasi contemporanea di due query ha effetti
sui tempi di risposta? Al crescere della complessita'
delle query quale soluzione e' ottimale? Inoltre conviene
avere un unico database con diverse tabelle o avere
diversi database con un'unica tabella?
Come si vede i fattori che entrano in gioco sono tanto
numerosi da
non poter dare una risposta definitiva sempre valida.
Magari
si lavora sul codice per risparmiare qualche decimo
di secondo e poi si obbliga l'utente ad aspettare il
caricamento di un'immagine da 100 kb!!!
|