Ajánlások. Amikor egy eljárást először fordítanak le vagy újrafordítanak, az eljárás lekérdezési terve az adatbázis és objektumai aktuális állapotára optimalizálódik. … Egy másik ok az eljárás újrafordítására az az eljárás-fordítás "paraméterszippelő" viselkedésének ellensúlyozása.
El kell kerülni a tárolt eljárásokat?
Tárolt eljárások rossz fejlesztési gyakorlatok népszerűsítése, különösen megkövetelik, hogy megsértse a DRY (Ne ismételje meg magát), mivel a mezők listáját be kell írnia adatbázistábla legalább fél tucatszor vagy többször. Ez óriási fájdalom, ha egyetlen oszlopot kell hozzáadnia az adatbázistáblához.
Mi az az Sp_recompile?
sp_recompile csak az aktuális adatbázisban keres egy objektumot. A tárolt eljárások vagy triggerek és a felhasználó által definiált függvények által használt lekérdezések csak a fordításkor optimalizálódnak. … Az SQL Server automatikusan újrafordítja a tárolt eljárásokat, triggereket és a felhasználó által definiált függvényeket, ha ez előnyös.
Mit tesz az újrafordítás az SQL-ben?
RECOMPILE – azt határozza meg, hogy, hogy a lekérdezés végrehajtása után a gyorsítótárban tárolt lekérdezés-végrehajtási terv törlődik a gyorsítótárból. Amikor ugyanazt a lekérdezést ismét végrehajtják, nem lesz meglévő terv a gyorsítótárban, ezért a lekérdezést újra kell fordítani.
Hatékonyak a tárolt eljárások?
Ebbe beletartozik például a szóközök és a kis- és nagybetűk érzékenysége. Sokkal kevésbé valószínű, hogy egy tárolt eljáráson belüli lekérdezés megváltozik, mint egy kódba ágyazott lekérdezés. … Emiatt a tárolt eljárás valójában gyorsabban futhat, mert képes volt egy gyorsítótárazott tervet újra felhasználni.