Ho una tabella utente in cui sono presenti un nome utente e colonne di applicazione. Nome utente può ripetere, ma combinazione di nome utente + applicazione è unico nel suo genere, ma non ho il vincolo univoco impostato sul tavolo (per le prestazioni)Effetto delle prestazioni dell'utilizzo di TOP 1 in una query SELECT
Domanda: ci sarà alcuna differenza (performance-saggio) tra:
SELECT * FROM User where UserName='myuser' AND Application='myapp'
E -
SELECT TOP 1 * FROM User where UserName='myuser' AND Application='myapp'
Come combinazione di nome utente + applicazione è unico, entrambe le query saranno sempre tornare non più di un record, in modo TOP 1 non influisce sul risultato. Ho sempre pensato che l'aggiunta di TOP 1 accelerasse davvero le cose man mano che il server SQL smetteva di cercare una trovata, ma di recente ho letto in un articolo che l'uso di TOP rallenterebbe davvero e si consiglia di evitare, anche se non lo hanno spiegato perché.
Eventuali commenti?
Grazie! Andrey
Grazie per la modifica, Joel - per qualche motivo non ero in grado di fare le query come linee di codice, vorrei selezionarle e fare clic sull'icona "codice" e non sarebbe successo nulla. – Andrey
Andrey, fai clic sull'icona prima di inserire il codice. Il trucco è che qualsiasi riga che inizia con quattro spazi viene interpretata come codice. Semplicemente seleziono il mio codice in SSMS e lo indentro. Questo mi dà una formattazione perfetta. (Ho impostato SSMS per utilizzare spazi anziché caratteri di tabulazione.) –