Vad är PL / SQL bra för?

November 2

PL / SQL är det språk som ska användas när du skriver kod som ligger i databasen. I följande artikel kommer du att se olika situationer där du hittar PL / SQL användbar.

Använda databasutlösare

En trigger är en händelse inom DBMS som kan orsaka en del kod som ska köras automatiskt. Det finns fyra typer av databas utlösare:

  • Tabell nivå triggers kan initiera aktivitet före eller efter en INSERT, UPDATE eller DELETE händelse. Dessa är oftast används för att spåra historia information och databasförändringar, för att hålla redundanta data synkroniseras, eller för att öka säkerheten genom att förhindra vissa operationer inträffar.
  • Visa nivå triggers är mycket användbara. En vy är en lagrad SQL-sats som utvecklare kan fråga som om det vore en databastabell själv. Genom att placera STÄLLET FÖR triggers på en vy, INSERT, ändra och ta bort kommandon kan tillämpas på utsikten oavsett dess komplexitet, eftersom STÄLLET FÖR avtryckaren definierar vad som kan göras till vyn.
  • Databas-nivå triggers kan aktiveras vid start och avstängning. Till exempel, när databasen startas kanske du vill testa tillgängligheten av andra databaser eller webbtjänster. Innan en databas avstängning, kanske du vill meddela andra databaser och webbtjänster att databasen går offline.
  • Sessionsnivå utlösare kan användas för att lagra specifik information. Till exempel, när en användare loggar på eller av, du kanske vill köra kod som innehåller användarens preferenser och laster dem i minnet för snabb åtkomst. När sessionen avslutas, kan en utlösare spara inställningarna för framtida bruk.

Skript med hastighet

När du skriver kod, är förmågan att skriva en del av kod och köra den utan att först spara den till databasen användbart. Oracle erbjuder denna möjlighet, som stöds av alla PL / SQL IDE.

Hålla kod på serversidan

Majoriteten av PL / SQL-kod lagras som programenheter i servern. En typisk tillämpning har många rader kod.

Vissa programmerare, särskilt webbaserade utvecklare som arbetar inom J2EE eller .NET miljöer, försök att skriva det mesta av sin kod i applikationsservern i Java (för J2EE-utvecklare) eller VB.NET (för NET-utvecklare). Detta är inte bra praxis. I ett databasprogram, en stor del av logik ägnas åt att hämta och uppdatera information. Om koden för att utföra denna uppgift är bosatt i en applikationsserver, måste den skicka en förfrågan till databasen över ett nätverk. Då databasen måste behandla begäran och skicka informationen tillbaka över nätet för ansökan till processen. Eftersom nätverk och datorer är nu mycket snabbt, kanske du tror att det skulle ta bara bråkdelar av en sekund. Även om detta är fallet för en enda begäran om en mycket komplex applikationen kräver miljoner eller till hundratals miljoner interaktioner med databasen, multiplicera antalet interaktioner med jämna bråkdelar av en sekund kan leda till mycket dåliga resultat.

Även relativt enkla operationer som kräver endast ett fåtal förfrågningar databas kan vara problematiskt om ansökan att användas av hundratals, tusentals eller tiotusentals användare samtidigt. Det är mycket svårare att bygga upp en databas intensiva program utan att använda serversidan kodning än det är att skriva all kod körs i en applikationsserver.

Ett av argumenten mot att skriva kod på serversidan är att ansökan inte kommer att vara bärbar (kan inte flyttas från en plattform till en annan). Dock har de flesta organisationer som använder Oracle använt det under en mycket lång tid (tio år eller mer) och är inte överväger en övergång till en annan plattform. Dessutom är webbutveckling närvarande i ett tillstånd av snabb förändring. Organisationer förändras ofta mellan .NET, J2EE, och andra miljöer för sin webbaserade applikationsutveckling.

Både .NET och J2EE-miljöer är stadd i förändring, liksom. I J2EE miljön, branschstandarden för webbutveckling ett år sedan eller så var att skapa Javaserver Pages (JSP). För närvarande är branschstandard för att arbeta i JSP / Struts miljö. Under nästa år eller så, ansikten Javaserver (JSFs) kommer sannolikt att bli branschstandard. Därför kod skriven i mitten-tier löper en hög risk för att behöva skrivas om i framtiden.

Kod på serversidan körs snabbare, är enklare att underhålla och testa, och är mindre benägna att förändras än kod placeras i mellanskiktet. Därför skapar betydande delar av en ansökan i databasen är en bättre metod.

Det finns ett antal platser där du kan skriva kod som dina program kan använda:

  • Delar av tillämpningar: PL / SQL programenheter kan returnera en uppsättning värden (funktioner), eller PL / SQL-rutiner kan utföra databasoperationer (förfaranden). Dessa funktioner och procedurer kan anropas av andra funktioner och procedurer eller (i fallet med funktioner) används i SQL-satser. PL / SQL-rutiner kan vara så stort och komplicerat som du behöver dem vara. Vissa komplexa rutiner kan innehålla tusentals rader av kod. Hela system kan innehålla miljontals rader kod.
  • PL / SQL-kod inbäddad i utsikt: Oracle kan du bädda in koden i utsikt databas. Koden kan faktiskt vara belägen i ett av två ställen i vyn. Först kan du placera korrekt utformad funktioner åter ett värde i SELECT delen av en SQL-sats för att hämta ytterligare information, som kanske eller kanske inte vara en del av de tabeller som efterfrågas.

Du kan också bädda PL / SQL i STÄLLET FÖR triggers på en vy. Dessa triggers kan du utföra INSERT, UPDATE och DELETE operationer på komplexa vyer, med PL / SQL programhantering hur verksamheten ska hanteras.

  • Batch rutiner: Batch rutiner köra kod som bearbetar ett stort antal poster samtidigt. Generera fakturor för varje kund i ett system eller bearbetar lönekontroller för en hel organisation är exempel på satsrutiner. Dessa rutiner är oftast stora, komplexa och databasintensiv. Denna typ av rutin bör förvisso vara skriven på PL / SQL.