Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Er zijn een aantal voordelen voor het gebruik van procedures, allemaal op basis van het feit dat met behulp van procedures SQL-instructies van de toepassing naar de gegevensbron worden verplaatst. Wat er nog in de toepassing staat, is een interoperabele procedureaanroep. Deze voordelen zijn onder andere:
Prestaties Procedures zijn meestal de snelste manier om SQL-instructies uit te voeren. Net als bij de voorbereide uitvoering wordt de opdracht gecompileerd en in twee afzonderlijke stappen uitgevoerd. In tegenstelling tot de voorbereide uitvoering worden procedures alleen uitgevoerd tijdens runtime. Ze worden op een ander moment gecompileerd.
Bedrijfsregels Een bedrijfsregel is een regel over de manier waarop een bedrijf zaken doet. Zo kan bijvoorbeeld alleen iemand met de titel Verkoper nieuwe verkooporders toevoegen. Door deze regels in procedures te plaatsen, kunnen afzonderlijke bedrijven verticale toepassingen aanpassen door de procedures die door de toepassing worden aangeroepen, te herschrijven zonder dat ze de toepassingscode hoeven te wijzigen. Een orderinvoertoepassing kan bijvoorbeeld de procedure InsertOrder aanroepen met een vast aantal parameters; Precies hoe InsertOrder wordt geïmplementeerd, kan variëren van bedrijf tot bedrijf.
Vervangbaarheid Nauw verwant aan het plaatsen van bedrijfsregels in procedures is het feit dat procedures kunnen worden vervangen zonder de toepassing opnieuw te compileren. Als een bedrijfsregel verandert nadat een bedrijf een toepassing heeft gekocht en geïnstalleerd, kan het bedrijf de procedure met die regel wijzigen. Vanuit het oogpunt van de toepassing is er niets veranderd; het roept nog steeds een bepaalde procedure aan om een bepaalde taak uit te voeren.
DBMS-specifieke SQL Procedures bieden een manier voor toepassingen om gebruik te maken van DBMS-specifieke SQL en blijven nog steeds interoperabel. Een procedure op een DBMS die stroomcontroles in SQL ondersteunt, kan bijvoorbeeld fouten onderscheppen en herstellen, terwijl een procedure op een DBMS zonder ondersteuning voor deze functies een fout kan retourneren.
Procedures overleven transacties In sommige gegevensbronnen worden de toegangsplannen voor alle voorbereide instructies voor een verbinding verwijderd wanneer een transactie wordt doorgevoerd of teruggedraaid. Door SQL-instructies in procedures te plaatsen, die permanent worden opgeslagen in de gegevensbron, overleven de instructies de transactie. Of de procedures nu in een voorbereide, gedeeltelijk voorbereide of onvoorbereide status overleven, is DBMS-specifiek.
Afzonderlijke ontwikkeling Procedures kunnen los van de rest van de toepassing worden ontwikkeld. In grote bedrijven kan dit een manier bieden om de vaardigheden van zeer gespecialiseerde programmeurs verder te benutten. Met andere woorden, toepassingsprogrammeurs kunnen code schrijven in de gebruikersinterface en databaseprogrammeurs kunnen procedures schrijven.
Procedures worden over het algemeen gebruikt door verticale en aangepaste toepassingen. Deze toepassingen voeren meestal vaste taken uit en het is mogelijk om in deze toepassingen vaste procedures aan te roepen. Een toepassing voor orderinvoer kan bijvoorbeeld de procedures InsertOrder, DeleteOrder, UpdateOrder en GetOrders aanroepen.
Er is weinig reden om procedures aan te roepen vanuit algemene toepassingen. Procedures worden meestal geschreven om een taak uit te voeren in de context van een bepaalde toepassing en dus geen gebruik te maken van algemene toepassingen. Een spreadsheet heeft bijvoorbeeld geen reden om de procedure InsertOrder zojuist aan te roepen. Bovendien mogen algemene toepassingen tijdens runtime geen procedures bouwen, in de hoop snellere uitvoering van de instructie te bieden; Dit is niet alleen langzamer dan voorbereid of direct uitvoeren, maar vereist ook DBMS-specifieke SQL-instructies.
Een uitzondering hierop zijn omgevingen voor toepassingsontwikkeling, die vaak een manier bieden voor programmeurs om SQL-instructies te bouwen die procedures uitvoeren en die programmeurs een manier bieden om procedures te testen. Dergelijke omgevingen roepen SQLProcedures aan om beschikbare procedures en SQLProcedureColumns weer te geven om de invoer-, invoer-/uitvoer- en uitvoerparameters, de retourwaarde van de procedure en de kolommen van alle resultatensets weer te geven die door een procedure zijn gemaakt. Dergelijke procedures moeten echter vooraf worden ontwikkeld voor elke gegevensbron; Hiervoor zijn DBMS-specifieke SQL-instructies vereist.
Er zijn drie belangrijke nadelen voor het gebruik van procedures. De eerste is dat procedures moeten worden geschreven en gecompileerd voor elke DBMS waarmee de toepassing moet worden uitgevoerd. Hoewel dit geen probleem is voor aangepaste toepassingen, kan het de ontwikkelings- en onderhoudstijd voor verticale toepassingen die zijn ontworpen om te worden uitgevoerd met een aantal DBMS's aanzienlijk verhogen.
Het tweede nadeel is dat veel DBMS's geen procedures ondersteunen. Nogmaals, dit is waarschijnlijk een probleem voor verticale toepassingen die zijn ontworpen om te worden uitgevoerd met een aantal DBMS's. Om te bepalen of procedures worden ondersteund, roept een toepassing SQLGetInfo aan met de optie SQL_PROCEDURES.
Het derde nadeel, dat met name van toepassing is op ontwikkelomgevingen van toepassingen, is dat ODBC geen standaard grammatica definieert voor het maken van procedures. Dat wil zeggen dat hoewel toepassingen procedures interoperabel kunnen aanroepen, ze ze niet interoperabel kunnen maken.