Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Pred začatím vlastnej práce , aby odpovedala na otázku , Oracle rozhliadne a prijíma rozhodnutie o tom , čo si myslia , je to najlepší spôsob , ako vykonať dotaz . To je optimalizátor . To určuje najefektívnejší spôsob , ako vykonať príkaz SQL po zvážení mnoho zvláštností v súvislosti s objektmi , ktoré odkazuje a za okolností uvedených v dotaze .
Aj keď vám navrhnúť aplikácie pomocou inteligentnej vytvorený kód , budete ešte zistíte , že existujú náznaky potrebné pre vyhlásenie pred optimalizátor nadväzuje na " optimálny " prevedení cestu . Niekedy optimalizátor môže požadovať pomoc v dôsledku chýb vo svojich modelových alebo natívnych problémov pri zhromažďovaní , ukladanie a spracovanie komplexných dát . Tipy môže vynútiť optimalizácia , aby čo najlepšie prevedenie cestu dotazu , bez ohľadu na to , čo je nedostatok . Avšak , naznačuje , rady pre optimalizátor by sa mali používať len , ak to nevyhnutne potrebné , a ak ste skúsený vývojár .
Typy Tip
Oracle má tri druhov rady .
Pridajte HintThe pripojiť náznak sa používa , keď je viac než jedna tabuľka využívané v dotaze . Táto nápoveda núti typ spojiť postup , ktorý sa používa . Spojí môžu byť použité v SELECT , UPDATE a DELETE . Nasledujúce VEDÚCI náznak navrhuje spojiť objednávky :
/* + VEDÚCI ( [ @ queryblock ] tablespec [ tablespec ] ... ) * /
Query Hinta dotazu pomocníka sa používa , keď špecifická logika má byť funkčná , aby sa celý dotaz , na rozdiel od jeho časti . Na druhú stranu , nie je tam žiadny spôsob , ako zistiť , aká časť dotazu by mal byť používaný s nádychom . Otázka má vždy SELECT , UPDATE , DELETE , INSERT alebo hromadné KOREŠPONDENCIA . Nasledujúce stopa môže byť použitý so všetkými z nich :
select /* + TIP * /namefrom empwhere id = 1 ;
Tabuľka HintHints , ktoré určujú tabuľky zvyčajne sa odvolávajú na tabuľky v DELETE , SELECT alebo UPDATE dotazu , v ktorom dochádza náznak , nie do tabuliek vnútri prípadné názory vytočených vyhlásenie . Optimalizácia dotazov zvyčajne vyberie najlepší spôsob optimalizácie bez rady je uvedené. Avšak , aj keď zadáte tabuľky nápovedu v kóde , optimalizácia dotazov môže ignorovať radu . Tabuľka rady bude ignorované , ak je tabuľka nie zvolí optimalizátor dotazov a uplatňuje počas nasledujúceho pláne dotazu
vybrať /* + ALL_ROWS * /employee_id , last_name , plat , job_idfrom empwhere employee_id = 4689 ; .