Indice su Query

giovedì 05 luglio 2007 - 07.37

erik77 Profilo | Senior Member

Ciao ragazzi,
nella mia applicazione ho una query simile :
select * from ORDINI
where (Matricola IN
( '908351992320',
'234324324',
'234324324',
'324324324',
'32432432',
'32423',
'234234324')
or Matricola = '32423432' )
and Stato = 'APER'
and Ordine <> '555335345'

vorrei sapere quale è l'indice migliore da creare per questo tipo di Select?

un indice su Matricola Stato e Ordine ?

grazie in anticipo

P.S. utilizzo Sql Server 2000

lbenaglia Profilo | Guru

>select * from ORDINI
>where (Matricola IN
>( '908351992320',
>'234324324',
>'234324324',
>'324324324',
>'32432432',
>'32423',
>'234234324')
>or Matricola = '32423432' )
>and Stato = 'APER'
>and Ordine <> '555335345'

Ciao erik77,

>'234324324',
>'234324324',
Questi due valori sono identici, ne basta uno.

> Matricola IN(...) or Matricola = '32423432'
Gli elementi dell'espressione specificata nell'operatore IN sono tutti in OR pertanto è sufficiente aggiungere un ulteriore elemento al posto dell'ultima OR.

>vorrei sapere quale è l'indice migliore da creare per questo
>tipo di Select?
E' impossibile rispondere a questa domanda senza conoscere la natura di utilizzo della tabella ORDINI.
Una corretta politica di indicizzazione prevede l'analisi di tutte le query che coinvolgono una data tabella, in modo da individuare la soluzione migliore.

>un indice su Matricola Stato e Ordine ?
Inizia a definirne 3 non clustered, uno per ogni colonna e verifica il piano di esecuzione.
Se non è soddisfacente sperimenta fino a identificarne uno valido.

>grazie in anticipo
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5