ciao,
deckman ha scritto:
una query lanciata su due tabelle relazionate è più rapida
Ora ti rispondo ma forse non ho capito il perché della tua domanda. Le relazioni sono uno strumento per ottenere l'integrità referenziale; la tua decisione di usarle o meno non deve dipendere dal fatto che le query siano più veloci o più lente.
Se andassi in bici di notte non collegheresti forse la dinamo, nonostante ti rallenti?
Tornando in tema: sembra che il query optimizer di Sql server tragga beneficio dalla presenza delle relazioni, come puoi leggere in questo caso di studio.
http://www.scarydba.com/2010/11/22/do-foreign-key-constraints-help-performance/Ciò è vero per istruzioni SELECT, mentre i comandi INSERT e DELETE saranno un pelo più lenti perché Sql Server deve garantire il rispetto dei vincoli esistenti tra le tabelle.
A proposito di prestazioni, puoi migliorarle adottando altri accorgimenti, ad esempio progettando uno schema che non richieda un numero eccessivo di join, oppure osservando gli
execution plan per capire come ottimizzare le query di selezione. Infine, aggiungere gli opportuni indici là dove servono.
Questo
grafico ti mostra un elenco di interventi da considerare. Le aree più grosse identificano maggiori opportunità di migliorare le performance.
ciao
Modificato da BrightSoul il 14 giugno 2012 22.59 -