Quale delle seguenti query SQL sarebbe più veloce? Un join su due tabelle o query successive?

StackOverflow https://stackoverflow.com/questions/4758712

Domanda

Ho due tabelle qui:

ITEMS
ID| DETAILS| .....| OWNER

USERS:
ID| NAME|....

Dove ITEMS.OWNER = USERS.ID

sto elencando le voci fuori con i loro nomi rispettivi proprietari. Per questo ho potuto utilizzare un join su entrambi i tavoli o potrei selezionare tutti gli elementi e ciclo attraverso di loro facendo una query SQL per recuperare il tupla di quel proprietario itmes. Quello è come:

1 sql con un JOIN contro 1x20 singola tabella SQL query

Il che sarebbe un suddetto approccio migliore per prendere in termini di velocità? Grazie

È stato utile?

Soluzione

Ogni domanda ha in testa. Se si può fare qualcosa con una query, è (quasi) sempre meglio farlo con una sola query. E la maggior parte dei motori di database sono più intelligente di te. Anche se è meglio dividere una query in qualche modo, il database sarà scoprire se stesso.

Un esempio di testa:. Se si esegue 100 query, ci sarà molto di più il traffico tra l'applicazione e il server web

In generale, se si vuole veramente sapere qualcosa di prestazioni, punto di riferimento i vari approcci, misurare i parametri che ti interessa e prendere una decisione sulla base dei risultati della becnhmark.

In bocca al lupo!

Altri suggerimenti

Naturalmente un JOIN sarà più veloce.

Fare domande 20 implicherà:

  • Analisi li volte 20
  • Fare indice 20 cerca di trovare l'inizio della gamma indice su items
  • Tornando recordsets 20 (ciascuna con il proprio metadati).

L'esecuzione di un join sarà molto più veloce e una migliore pratica

Mi unisco sarebbe molto più veloce di eseguire un'altra query sulla tabella figlio per ogni record nella tabella padre.

È inoltre possibile abilitare i dati delle prestazioni in SQL per vedere i risultati per lei ..

http://wraithnath.blogspot.com/ 2011/01 / getting-prestazioni-data-da-sql.html

N

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top