Tip er Oracle database funktioner, der tillader programmører at fortælle Oracle , at de allerede kender den bedste udførelse vej for en SQL-forespørgsel og give oplysninger om den sti , så Oracle vil overtage det. Hints er ligetil kommandoer , der fortæller optimizer til at gøre hvad det er fortalt . Tyder Hints
Inden du starter det egentlige arbejde til at besvare en forespørgsel , Oracle ser sig omkring og gør en beslutning om, hvad den mener er den bedste måde at udføre forespørgslen. Dette er optimizer . Den bestemmer den mest effektive måde at udføre en SQL-sætning efter at mange træk relateret til de refererede objekter og de omstændigheder, der er angivet i forespørgslen.
Selv hvis du designer din ansøgning med intelligent udformet kode, vil du stadig finde , at der er antydninger nødvendige for redegørelser før optimizer følger den " optimale " udførelse sti . Undertiden Optimizer kan kræve hjælp på grund af defekter i sin model eller indfødte problemer ved indsamling , lagring og behandling af komplekse data . Tips kan tvinge optimizer at lave den bedste udførelse vej for en forespørgsel , uanset hvad manglen. Dog bør tyder hints til optimizer forsøges kun når det er absolut nødvendigt, og hvis du er en erfaren udvikler.
Tip Typer
Oracle har tre slags hints. < br >
Deltag HintThe join hint bruges, når mere end én tabel udnyttes i en forespørgsel. Dette vink tvinger den type join procedure, der anvendes . Melder kan bruges i SELECT , UPDATE og DELETE udtalelser. Følgende FØRENDE antydning foreslår deltage ordrer : Hej
/* + FØRENDE ( [ @ queryblock ] tablespec [ tablespec ] ...) * /
Query hinta forespørgsel hint anvendes, når særlige logik har at være funktionelt til en hel forespørgsel , i modsætning til en del af det . På den anden side , er der ingen måde at afgøre hvilken del af en forespørgsel bør anvendes med tippet . En forespørgsel har altid SELECT , UPDATE , DELETE , INSERT eller flette erklæring. Følgende tip kan bruges med alle dem : Hej
select /* + HINT * /namefrom empwhere id = 1;
Tabel HintHints der angiver en tabel normalt henvise til tabeller i DELETE , SELECT , eller UPDATE-sætning af en forespørgsel , hvor hint sker, ikke at tabeller inde eventuelle synspunkter formidles af udtalelsen . Forespørgslen optimizer generelt hakke den bedste optimering metode uden hints bliver specificeret. Men selv om du angiver en tabel vink i din kode , kan forespørgslen optimizer ignorere vink. Tabel vink vil blive ignoreret , hvis tabellen ikke er valgt af forespørgslen optimizer og bruges i den efterfølgende forespørgsel plan
select /* + ALL_ROWS * /employee_id , last_name , løn job_idfrom empwhere employee_id = 4689 ; . < Br >