Anbefalinger. Når en prosedyre kompileres for første gang eller kompileres på nytt, optimaliseres prosedyrens spørringsplan for den nåværende tilstanden til databasen og dens objekter. … En annen grunn til å tvinge en prosedyre til å rekompilere er for å motvirke "parametersniffing"-oppførselen til prosedyrekompilering.
Bør lagrede prosedyrer unngås?
Lagrede prosedyrer fremme dårlig utviklingspraksis, spesielt krever de at du bryter DRY (Ikke gjenta deg selv), siden du må skrive ut listen over felt i databasetabell et halvt dusin ganger eller mer minst. Dette er en enorm smerte hvis du trenger å legge til en enkelt kolonne i databasetabellen.
Hva er Sp_recompile?
sp_recompile ser kun etter et objekt i gjeldende database. Spørringene som brukes av lagrede prosedyrer, eller triggere, og brukerdefinerte funksjoner optimaliseres bare når de er kompilert. … SQL Server rekompilerer automatisk lagrede prosedyrer, utløsere og brukerdefinerte funksjoner når det er fordelaktig å gjøre dette.
Hva gjør rekompilering i SQL?
RECOMPILE – spesifiserer at etter at spørringen er utført, fjernes dens utførelsesplan for spørringen lagret i hurtigbufferen fra cachen. Når den samme spørringen utføres igjen, vil det ikke være noen eksisterende plan i hurtigbufferen, så spørringen må kompileres på nytt.
Er lagrede prosedyrer effektive?
Dette inkluderer ting som mellomrom og følsomhet for store og små bokstaver. Det er mye mindre sannsynlig at en spørring inne i en lagret prosedyre vil endre seg sammenlignet med en spørring som er innebygd i kode. … På grunn av dette kan den lagrede prosedyren faktisk kjøres raskere fordi den var i stand til å gjenbruke en bufret plan.