Spiegazioni :P

giovedì 11 ottobre 2007 - 09.07

PEPE Profilo | Senior Member

Salve a tutti,
come consigiato dal mitico Lorenzo...ormai mio guru :D, sto leggendo un libro sul T-Sql. A prescindere che sto imparando un sacco di cose e lo sto leggendo molto volentieri mi sono scontrato con un argomento che mi ha creato dei dubbi.

La parola cosi fastidiosa è WITH RECOMPILE che si mette nelle stored procedure.
Da quello che ho capito con l'opzione with recompile sql server ricompila ogni volta la stored procedure senza andare a vedere il query plan della stessa se fosse stata gia eseguita pochi istanti prima. Questo permette di ridurre i tempi di elaborazione nel caso in cui il numero di record dovesse variare molto da query a query.
Se fino a questo punto del mio riassunto non ho detto scemenze mi è tutto chiaro.

Il libro poi fa un esempio ricercando dei record per data e fa
SELECT * FROM Orders WHERE OrderDate>='1996-07-01 00:00:00.000'

Il libro dice esattamente: Questa query si risolve in una scansione di un indice clustered e fa vedere il query plan.

Poi fa un'altra select che questa volta restituisce 4 record al posto di 4000
e dice che la nuova query da un accesso ad un indice non clustered.

Ora io ho cercato di capire un po che cavolo sono questi indici clustered ma ho trovato informazioni contorte.

Allora o so stupido oppure non è facile da spiegare :D:D:D:D...speriamo sia la seconda :D.

us01739 Profilo | Expert

...non ti preoccupare, è l'argomento che all'inizio può essere un po' spinoso ;-)

Prova a dare un'occhiata:
http://www.marcopipino.it/sql/ottimizzazione-indici.php
http://italy.mvps.org/MVPs/lbianchi/art_Indici.htm

...poi se vuoi approfondiamo.

Bye Bye

---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
http://www.robertogelmini.com
---------------------------------------------------

lbenaglia Profilo | Guru

>La parola cosi fastidiosa è WITH RECOMPILE che si mette nelle
>stored procedure.
>Da quello che ho capito con l'opzione with recompile sql server
>ricompila ogni volta la stored procedure senza andare a vedere
>il query plan della stessa se fosse stata gia eseguita pochi
>istanti prima. Questo permette di ridurre i tempi di elaborazione
>nel caso in cui il numero di record dovesse variare molto da
>query a query.
>Se fino a questo punto del mio riassunto non ho detto scemenze
>mi è tutto chiaro.
Corretto.

>Ora io ho cercato di capire un po che cavolo sono questi indici
>clustered ma ho trovato informazioni contorte.
Tempo fa scrissi questo post:
http://groups.google.it/group/microsoft.public.it.sql/msg/a8693e050bb3bc09

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

PEPE Profilo | Senior Member

Grazie 1000 a tutti,
il vostro supporto come sempre è fondamentale :D.

Ciao,
Luca.

us01739 Profilo | Expert


Bye Bye

---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
http://www.robertogelmini.com
---------------------------------------------------
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