Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az eljárások használatának számos előnye van, amelyek mind azon alapulnak, hogy az eljárások használata sql-utasításokat helyez át az alkalmazásból az adatforrásba. Az alkalmazásban egy interoperábilis eljáráshívás marad. Ezek az előnyök a következők:
Teljesítmény Az SQL-utasítások végrehajtásának általában az eljárások a leggyorsabbak. Az előkészített végrehajtáshoz hasonlóan az utasítás fordítása és végrehajtása két külön lépésben történik. Az előkészített végrehajtástól eltérően az eljárások csak futásidőben lesznek végrehajtva. Más időpontban vannak összeállítva.
Üzleti szabályok Az üzleti szabály a vállalat üzleti tevékenységének módjára vonatkozó szabály. Előfordulhat például, hogy csak a Sales Person (Értékesítési személy) címmel rendelkező személy vehet fel új értékesítési rendeléseket. Ezeknek a szabályoknak az eljárásokban való elhelyezése lehetővé teszi, hogy az egyes vállalatok testre szabják a függőleges alkalmazásokat az alkalmazás által meghívott eljárások újraírásával anélkül, hogy módosítaniuk kellene az alkalmazás kódját. Egy rendelésbejegyzési alkalmazás meghívhatja például az InsertOrder eljárást rögzített számú paraméterrel; az InsertOrder implementálásának módja vállalatonként eltérő lehet.
Cserélhetőség Az üzleti szabályok eljárásokban való elhelyezéséhez szorosan kapcsolódik az a tény, hogy az eljárások az alkalmazás újrafordítása nélkül helyettesíthetők. Ha egy üzleti szabály megváltozik, miután egy vállalat megvásárolt és telepített egy alkalmazást, a vállalat módosíthatja a szabályt tartalmazó eljárást. Az alkalmazás szempontjából semmi sem változott; egy adott feladat végrehajtásához még mindig egy adott eljárást hív meg.
DBMS-specifikus SQL Az eljárások lehetővé teszik az alkalmazások számára, hogy kihasználják a DBMS-specifikus SQL-t, és továbbra is együttműködjenek. Előfordulhat például, hogy az SQL-ben a folyamatvezérlési utasításokat támogató DBMS-eljárások csapdába ejtik és helyreállítják a hibákat, míg a folyamatvezérlési utasításokat nem támogató DBMS-eljárások egyszerűen hibát adnak vissza.
Az eljárások túlélik a tranzakciókat Egyes adatforrásokban a kapcsolat összes előkészített utasításának hozzáférési tervei törlődnek a tranzakció véglegesítésekor vagy visszaállításakor. Ha az SQL-utasításokat az adatforrásban véglegesen tárolt eljárásokba helyezi, az utasítások túlélik a tranzakciót. A DBMS-specifikus, hogy az eljárások előkészített, részben előkészített vagy felkészületlen állapotban maradnak-e.
Külön fejlesztés Az eljárások az alkalmazás többi részétől külön fejleszthetők. A nagyvállalatoknál ez lehetővé teheti a magasan specializált programozók készségeinek további kihasználását. Más szóval az alkalmazásprogramozók írhatnak felhasználói felületi kódot, az adatbázis-programozók pedig írhatnak eljárásokat.
Az eljárásokat általában függőleges és egyéni alkalmazások használják. Ezek az alkalmazások általában rögzített feladatokat hajtanak végre, és az eljáráshívásokat közvetlenül a kódjukba lehet ágyazni. Egy rendelésbejegyzési alkalmazás meghívhatja például az InsertOrder, a DeleteOrder, az UpdateOrder és a GetOrders eljárást.
Kevés ok van eljárások meghívására az általános alkalmazásokból. Az eljárásokat általában úgy írják meg, hogy egy adott alkalmazás kontextusában végezzenek el egy feladatot, ezért nincs használatban az általános alkalmazásokhoz. A számolótábláknak például nincs okuk meghívni az imént említett InsertOrder eljárást. Továbbá az általános alkalmazások nem hozhatnak létre eljárásokat futásidőben annak reményében, hogy gyorsabb utasítás-végrehajtást biztosítsanak; ez nem csak az előkészített vagy a közvetlen végrehajtásnál valószínűbb, hanem dbMS-specifikus SQL-utasításokat is igényel.
Ez alól kivételt képeznek az alkalmazásfejlesztési környezetek, amelyek gyakran lehetővé teszik, hogy a programozók olyan SQL-utasításokat készítsenek, amelyek eljárásokat hajtanak végre, és lehetővé teszik a programozók számára az eljárások tesztelését. Az ilyen környezetek meghívják az SQLProcedurest az elérhető eljárások és az SQLProcedureColumns listázására a bemeneti, bemeneti/kimeneti és kimeneti paraméterek, az eljárás visszatérési értéke és az eljárás által létrehozott eredményhalmazok oszlopai listázásához. Ezeket az eljárásokat azonban minden adatforráson előre ki kell fejleszteni; Ehhez DBMS-specifikus SQL-utasításokra van szükség.
Az eljárások használatának három fő hátránya van. Az első az, hogy az eljárásokat minden olyan DBMS-hez meg kell írni és lefordítani, amellyel az alkalmazást futtatni kell. Bár ez nem jelent problémát az egyéni alkalmazások esetében, jelentősen növelheti a több DBMS-sel való futtatásra tervezett függőleges alkalmazások fejlesztési és karbantartási idejét.
A második hátránya, hogy sok DBMS nem támogatja az eljárásokat. Ez valószínűleg több DBMS-sel való futtatásra tervezett függőleges alkalmazások esetében is problémát jelent. Annak megállapításához, hogy az eljárások támogatottak-e, egy alkalmazás meghívja az SQLGetInfo-t a SQL_PROCEDURES lehetőséggel.
A harmadik hátrány, amely különösen az alkalmazásfejlesztési környezetekre vonatkozik, az, hogy az ODBC nem határoz meg szabványos nyelvtant az eljárások létrehozásához. Ez azt jelenti, hogy bár az alkalmazások együttműködve hívhatják meg az eljárásokat, nem hozhatják létre őket együttműködően.