Hva er PL / SQL godt for?

June 1  by Eliza

PL / SQL er språket som skal brukes når du skriver kode som ligger i databasen. I den følgende artikkelen vil du se forskjellige situasjoner hvor du finner PL / SQL nyttig.

Ved hjelp av database triggere

En trigger er en hendelse innenfor DBMS som kan føre til at noen kode for å utføre automatisk. Det finnes fire typer database triggere:

  • Tabell-nivå triggere kan initiere aktivitet før eller etter en INSERT, UPDATE eller DELETE hendelsen. Disse er som oftest brukes til å spore historien informasjon og database endringer, for å holde overflødige data synkronisert, eller for å forbedre sikkerheten ved å forhindre visse operasjoner oppstår.
  • Vis nivå utløser er veldig nyttig. En visning er en lagret SQL-setning som utviklere kan spørre som om det var en database bordet selv. Ved å plassere STEDET FOR triggere på en visning, INSERT, endre og slette kommandoer kan brukes til visning uavhengig av sin kompleksitet, fordi STEDET FOR trigger definerer hva som kan gjøres til visningen.
  • Databasenivå triggere kan aktiveres ved oppstart og avslutning. For eksempel, når databasen starter opp vil du kanskje teste tilgjengeligheten av andre databaser eller webtjenester. Før en database nedleggelse, kan det være lurt å varsle andre databaser og webtjenester at databasen er går offline.
  • Sesjonsnivå utløser kan brukes til å lagre informasjon. For eksempel når en bruker logger på eller av, kan det være lurt å kjøre kode som inneholder brukerens preferanser og laster dem inn i minnet for rask tilgang. Når økten lukkes, kan en trigger lagre innstillinger for fremtidig bruk.

Scripting med fart

Når du skriver kode, er nyttig muligheten til å skrive en del av kode og kjøre den uten først å lagre den til databasen. Oracle tilbyr denne funksjonen, som støttes av alle PL / SQL-IDE.

Holde kode på serversiden

Flertallet av PL / SQL-kode blir lagret som programenheter i serveren. Et typisk bruksområde har mange linjer med kode.

Noen programmerere, spesielt web-baserte utviklere som arbeider i J2EE eller NET miljøer, prøv å skrive det meste av koden sin i applikasjonstjeneren i Java (for J2EE-utviklere) eller VB.NET (for NET utviklere). Dette er ikke god praksis. I en database applikasjon, mye av logikken er viet til å hente og oppdatere informasjon. Hvis koden for å utføre denne oppgaven ligger i en applikasjonsserver, må den sende en forespørsel til databasen over et nettverk. Deretter må databasen behandle forespørselen og sende informasjonen tilbake over nettverket for programmet til prosessen. Fordi nettverk og datamaskiner er nå veldig fort, kan du tror at dette ville ta bare brøkdeler av et sekund. Selv om dette er tilfelle for en enkelt forespørsel, hvis en svært kompleks applikasjonen krever millioner eller hundrevis av millioner av interaksjoner med databasen, multiplisere antall interaksjoner av selv brøkdeler av et sekund kan føre til svært dårlig ytelse.

Selv relativt enkle operasjoner som krever bare noen få databaseforespørsler kan være problematisk dersom søknaden er i bruk av hundrevis, tusenvis, eller titusenvis av brukere samtidig. Det er mye vanskeligere å bygge opp en database-intensive programmet uten å bruke server-side koding enn det er å skrive all koden for å kjøre i en applikasjonsserver.

Ett av argumentene mot å skrive server-side kode er at programmet ikke vil være bærbare (kan ikke flyttes fra en plattform til en annen). Imidlertid har de fleste organisasjoner som bruker Oracle brukt det i en veldig lang tid (ti eller flere år) og er ikke vurderer en overgang til en annen plattform. Dessuten er webutvikling for tiden i en tilstand av rask forandring. Organisasjoner ofte skifte mellom .NET, J2EE, og andre miljøer for deres web-basert applikasjonsutvikling.

Både .NET og J2EE miljøer er i endring, så vel. I J2EE miljø, bransjestandarden for webutvikling et års tid siden var å skape Javaserver Pages (JSP). Foreløpig er industristandarden for å jobbe i JSP / Struts miljø. I det neste året eller så, Javaserver Faces (JSFs) vil trolig bli industristandard. Derfor kode skrevet i den midterste laget løper en høy risiko for å måtte skrives om i fremtiden.

Server-side kode kjører raskere, er enklere å vedlikeholde og teste, og er mindre utsatt for å endre enn kode plassert i midten tier. Derfor skaper betydelige deler av et program i databasen er en bedre tilnærming.

Det finnes en rekke steder der du kan skrive kode som dine programmer kan bruke:

  • Deler av programmer: PL / SQL-program enheter kan returnere et sett av verdier (funksjoner), eller PL / SQL-rutiner kan utføre databaseoperasjoner (prosedyrer). Disse funksjonene og prosedyrer kan kalles av andre funksjoner og prosedyrer, eller (i tilfelle av funksjoner) som brukes i SQL-setninger. PL / SQL-rutiner kan være så stor og komplisert som du trenger dem for å være. Noen komplekse rutiner kan inneholde tusenvis av linjer med kode. Hele systemer kan inneholde millioner av linjer med kode.
  • PL / SQL-kode innebygd i visninger: Oracle lar deg sette inn kode i utsikt database. Koden kan faktisk ligge i ett av to steder i visningen. Først kan du plassere riktig utformede funksjoner returnerer en verdi i SELECT del av en SQL-setning for å hente ytterligere informasjon, som kanskje eller kanskje ikke være en del av tabellene blir spørres.

Du kan også legge inn PL / SQL i STEDET FOR triggere på en visning. Disse utløser tillate deg å utføre INSERT, UPDATE og DELETE-operasjoner på komplekse utsikt, med PL / SQL programma håndtering hvordan disse operasjonene skal håndteres.

  • Batch rutiner: Batch rutiner kjøre kode som behandler et stort antall poster samtidig. Genererer fakturaer for hver kunde i et system eller behandling lønningssjekker for en hel organisasjon er eksempler på batch rutiner. Disse rutiner er vanligvis store, komplekse, og database krevende. Denne typen rutine bør sikkert være skrevet i PL / SQL.