hint er Oracle database funksjoner som tillater programmerere å fortelle Oracle at de allerede vet den beste køyrestikatalogar for en SQL-spørring og gi informasjon for at banen slik at Oracle vil skaffe det. Hint er enkle kommandoer som forteller Optimizer å gjøre det som er fortalt . Tyder Hint
Før du starter selve arbeidet å svare en spørring , ser Oracle rundt og gjør en beslutning om hva de mener er den beste måten å utføre søket. Dette er optimalisereren . Det bestemmer den mest effektive måten å utføre en SQL-setning etter å ha vurdert mange egenskaper knyttet til objektene refererte og omstendighetene spesifisert i spørringen.
Selv om du designe din søknad ved hjelp av intelligent utformet kode , vil du fortsatt finne at det er hint som trengs for uttalelser før optimizer følger " optimale" køyrestikatalogar . Noen ganger Optimizer kan kreve hjelp på grunn av feil i sin modell eller innfødte problemer ved innsamling , lagring og behandling av komplekse data . Tipsene kan tvinge Optimizer å gjøre det beste køyrestikatalogar for en spørring , uansett hva mangel. Imidlertid bør tyder hint til Optimizer bli forsøkt bare når det er absolutt nødvendig, og hvis du er en erfaren utvikler .
Tips Typer
Oracle har tre typer hint .
Bli HintThe join hint brukes når mer enn én tabell er brukt i en spørring . Denne antydning tvinger den type sammenføyning prosedyren som anvendes . Tiltrer kan brukes i SELECT , UPDATE og DELETE-setninger . Følgende LEDENDE hint antyder bli med bestillinger : en
/* + LEDENDE ( [ @ queryblock ] tablespec [ tablespec ] ... ) * /
Query HintA spørring hint brukes når spesifikke logikk må være funksjonelt til en hel spørring , i motsetning til en del av den. På den annen side er det ikke mulig å fastslå hvilken del av en spørring skal brukes med hintet . En spørring har alltid SELECT , UPDATE , DELETE , INSERT eller flette uttalelse. Følgende hint kan brukes med alle av dem : en
select /* + HINT * /namefrom empwhere id = 1;
Tabell HintHints som angir et bord vanligvis refererer til tabeller i DELETE , SELECT eller oppdatere uttalelse av en spørring som hintet skjer, ikke til tabeller inne noen synspunkter formidles av uttalelsen. Spørringsoptimaliseringen plukker vanligvis den beste optimalisering metoden uten hint blir spesifisert. Men selv om du angir et bord hint i koden , kan spørringsoptimaliseringen ignorere hint . Tabell tips vil bli ignorert hvis tabellen ikke er valgt av spørringsoptimaliseringen og brukes i den påfølgende spørringen plan
select /* + ALL_ROWS * /ansatt_nr , etternavn , lønn , job_idfrom empwhere ansatt_nr = 4689 ; .