Hvordan sette bind variabler på Oracle SQL

Hver gang en SQL-setning blir sendt til databasen, er en eksakt tekst kamp utført for å se om den uttalelsen er allerede til stede i felles svømmebasseng. Hvis det ikke blir funnet, en ressurskrevende prosess som kalles en hard parse utføres. bruk av bind variabler kan redusere denne overhead. Bind variabler er substitusjon variabler som brukes i stedet for konstanter (f.eks "John Doe") som har effekt av å sende akkurat det samme SQL til Oracle hver gang en spørring blir utført. Ved hjelp av bind variabler kan resultere i en betydelig ytelsesforbedring for ofte spørres flerbrukerdatabaser.

Bruksanvisning

1 Definere variabelen du ønsker å bruke i din uttalelse på SQL * Plus ledetekst med syntaksen:

variabel << variabelnavn >> << typen >>

For eksempel:

variabel Kunde-ID nummer

2 Sett verdiene av de definerte bind variabler som bruker syntaksen:

exec: << variabelnavn >>: = << variabel verdi >>

For eksempel:

exec: Kunde-ID: = 123455

3 Oppgi SQL-setningen erstatte bind variabel for bokstavelig verdi. For eksempel:

select * fra EMP der CUSTOMER_ID =: Kunde-ID;

Hint

  • PL / SQL gjør det svært enkelt å bruke bind variabler fordi hver referanse til en PL / SQL variabel implisitt konvertert til et bind variabel. Ingen spesiell syntaks er nødvendig.
  • Når du oppretter dynamiske SQL bruke "utføre øyeblikkelig", i stedet for å sette sammen en verdi, som vist i dette eksemplet:
  • utføre umiddelbare 'update emp sett sal = sal * 2 hvor empno =' || p_empno;
  • kan du i stedet erstatte bind variabel syntaksen som vist nedenfor:
  • utføre umiddelbare 'update emp sett sal = sal * 2 hvor empno =: x' med p_empno;
  • Husk at binde variabel bør primært brukes med OLTP spørringer. Bruk av bind variabler med lange løpe eller datavarehus typen spørsmål kan redusere ytelsen. For eksempel, bruk av bind variabler forbyr stjerners transformasjoner, som sterkt reduserer effektiviteten av å bli med fakta og dimensjonstabeller i et stjerneskjema.