Meglio Like o =

venerdì 04 maggio 2007 - 11.25

Pongo Profilo | Senior Member

Ciao, non mi sembrava il caso di aprire un thread nella standa dei Db, quindi lo chiedo qui: a livello di performance è meglio il like o '='?

Personalmente mi piace di più il like.

Meglio l' '=' ?

Che mi raccontate? ^_^

Ciaooooo!

alx_81 Profilo | Guru

>Ciao,
Ciao!

>non mi sembrava il caso di aprire un thread nella standa dei Db, quindi lo chiedo qui:
Potevi nella stanza DB, non sai a quanti farebbe comodo una risposta così!!

>a livello di performance è meglio il like o '='?
beh.. decisamente =..
Il motore di SQL Server, appena trova una clausola WHERE,
prova ad individuare l'indice o gli indici in grado di risolvere la clausola.

Siccome l'indice eventualmente utilizzato è ordinato, SQL Server identifica ed esclude tutti quei risultati che sono prima o dopo i valori di ricerca. Quindi la LIKE, che obbliga l'inserimento di wildcard come _ e *, comprende un insieme di valori (Valori che cominciano per, che comprendono un testo, ecc..) per cui al motore di sql server risulta difficile ottimizzare la query facendo uso di indici mirati a risolvere la clausola WHERE.

Leggi qui:
http://www.microsoft.com/italy/msdn/risorsemsdn/platform/guidelines.mspx

>
>Personalmente mi piace di più il like.
a volte quello che piace non è quello che vince

Ciao!
Alx81 =)

http://blogs.dotnethell.it/suxstellino

Pongo Profilo | Senior Member

Perfetto!
Adesso mi sono tolto il dubbio! ^_^

Ciao e grazie!

lbenaglia Profilo | Guru

>Quindi la LIKE, che obbliga l'inserimento
>di wildcard come _ e *, comprende un insieme di valori (Valori
>che cominciano per, che comprendono un testo, ecc..) per cui
>al motore di sql server risulta difficile ottimizzare la query
>facendo uso di indici mirati a risolvere la clausola WHERE.

Questo non è del tutto vero.
Come giustamente ha indicato Davide nel suo articolo, se le wildcard sono utilizzate come suffissi, il Query Optimizer è in grado tranquillamente di sfruttare gli eventuali indici definiti sulla colonna.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

alx_81 Profilo | Guru

>Questo non è del tutto vero.
>Come giustamente ha indicato Davide nel suo articolo, se le wildcard
>sono utilizzate come suffissi, il Query Optimizer è in grado
>tranquillamente di sfruttare gli eventuali indici definiti sulla
>colonna.
Vero.. grazie Lorenzo come sempre!
>
>Ciao!
Ciao!
Alx81 =)

http://blogs.dotnethell.it/suxstellino
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 !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5