Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Inner join, where o select nidificate?
lunedì 21 aprile 2008 - 17.34
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Klaus-zanini
Profilo
| Senior Member
364
messaggi | Data Invio:
lun 21 apr 2008 - 17:34
Ultimamente ho sempre più a che fare con il mondo di MSDE e ho spesso grossi problemi nelle prestazioni.
Per recuperare dati da più tabelle contemporaneamente cos'è più performante?
Ho notato che fare select tra tabelle in join tra loro a volte è più veloce di una select tra due tabelle con tante condizioni Where, e altre volte no. A volte le select nidificate sono ancora più veloci.
C'è una regola o qualche semplice esempio per capire quando usare le une o le altre?
Come influenzano questa scelta l'uso di indici e chiavi?
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 22 apr 2008 - 08:18
>Per recuperare dati da più tabelle contemporaneamente cos'è più
>performante?
>Ho notato che fare select tra tabelle in join tra loro a volte
>è più veloce di una select tra due tabelle con tante condizioni
>Where, e altre volte no. A volte le select nidificate sono ancora
>più veloci.
>C'è una regola o qualche semplice esempio per capire quando usare
>le une o le altre?
Tutti i DBMS offrono uno strumento essenziale per aumentare le prestazioni nell'accesso ai dati: gli indici.
Lo standard ANSI SQL prevede l'operatore JOIN per correlare due tabelle, ma volendo si potrebbe specificare le due tabelle nella clausola FROM e le colonne di correlazione nella clausola WHERE.
Il query optimizer genererà per entrambe le query il medesimo piano di esecuzione.
Io personalmente tendo ad utilizzare la clausola WHERE esclusivamente per specificare le condizioni di filtro sui dati, per una questione di "ordine" nella stesura della query.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Klaus-zanini
Profilo
| Senior Member
364
messaggi | Data Invio:
mar 22 apr 2008 - 08:54
E' molto probabile che allora io non utilizzi a dovere gli indici. Dove posso trovare delle regole chiare per ottimizzare le mie query utilizzando gli indici corretti sulle tabelle?
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 22 apr 2008 - 10:39
>E' molto probabile che allora io non utilizzi a dovere gli indici.
>Dove posso trovare delle regole chiare per ottimizzare le mie
>query utilizzando gli indici corretti sulle tabelle?
L'argomento è alquanto vasto e trovi come sempre tutte le indicazioni sui Books Online.
Prenditi un po' di tempo per assimilarlo:
http://msdn2.microsoft.com/en-us/library/ms189271.aspx
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !