Tárolt eljárások használata dedikált SQL-készletekhez a Azure Synapse Analyticsben
Ez a cikk tippeket nyújt a dedikált SQL-készletmegoldások tárolt eljárások implementálásával történő fejlesztéséhez.
Amire számíthat
A dedikált SQL-készlet számos T-SQL-funkciót támogat, amelyeket a SQL Server használ. Ennél is fontosabb, hogy vannak olyan kibővített funkciók, amelyekkel maximalizálható a megoldás teljesítménye.
Emellett a dedikált SQL-készlet skálájának és teljesítményének fenntartásához további funkciók és funkciók is rendelkezésre állnak, amelyek viselkedésbeli eltérésekkel rendelkeznek.
Tárolt eljárások bevezetése
A tárolt eljárások kiválóan alkalmasak az SQL-kód beágyazására, amely a dedikált SQL-készlet adataihoz közel van tárolva. A tárolt eljárások abban is segítenek a fejlesztőknek, hogy a kód kezelhető egységekbe való beágyazásával modulárisan alakítsák ki megoldásaikat, ezáltal megkönnyítve a kód újrafelhasználhatóságát. Minden tárolt eljárás paramétereket is elfogad, hogy még rugalmasabbá tegye őket.
A dedikált SQL-készlet egyszerűsített és egyszerűsített tárolt eljárás-implementációt biztosít. A legnagyobb különbség a SQL Server képest az, hogy a tárolt eljárás nem előre lefordított kód.
Az adattárházak esetében általában a fordítási idő kicsi a nagy adatmennyiségek lekérdezéseinek futtatásához szükséges időhöz képest. Ennél is fontosabb, hogy a tárolt eljáráskód megfelelően legyen optimalizálva nagy lekérdezésekhez.
Tipp
A cél az, hogy órákat, perceket és másodperceket takarítson meg, ne ezredmásodperceket. Ezért hasznos, ha a tárolt eljárásokat SQL-logika tárolójaként tekintjük.
Amikor egy dedikált SQL-készlet végrehajtja a tárolt eljárást, a rendszer futtatáskor elemzi, lefordítja és optimalizálja az SQL-utasításokat. A folyamat során a rendszer minden utasítást elosztott lekérdezésekké konvertál. Az adatokon végrehajtott SQL-kód eltér az elküldött lekérdezésétől.
Tárolt eljárások beágyazása
Ha a tárolt eljárások meghívnak más tárolt eljárásokat, vagy dinamikus SQL-t hajtanak végre, akkor a rendszer a belső tárolt eljárást vagy kódhívást beágyazottnak tekinti.
A dedikált SQL-készlet legfeljebb nyolc beágyazási szintet támogat. Ezzel szemben a SQL Server beágyazás szintje 32.
A legfelső szintű tárolt eljáráshívás az 1. beágyazási szintnek felel meg.
EXEC prc_nesting
Ha a tárolt eljárás egy másik EXEC-hívást is kezdeményez, a beágyazási szint kettőre nő.
CREATE PROCEDURE prc_nesting
AS
EXEC prc_nesting_2 -- This call is nest level 2
GO
EXEC prc_nesting
Ha a második eljárás dinamikus SQL-t hajt végre, a beágyazási szint háromra nő.
CREATE PROCEDURE prc_nesting_2
AS
EXEC sp_executesql 'SELECT 'another nest level' -- This call is nest level 2
GO
EXEC prc_nesting
A dedikált SQL-készlet jelenleg nem támogatja a @@NESTLEVEL. Ezért nyomon kell követnie a beágyazás szintjét. Nem valószínű, hogy túllépi a nyolc beágyazásszint-korlátot. Ha mégis, át kell dolgoznia a kódot, hogy megfeleljen a beágyazási szinteknek ezen a korláton belül.
BESZÚRÁSA.. VÉGRE
A dedikált SQL-készlet nem teszi lehetővé egy tárolt eljárás eredményhalmazának az INSERT utasítással való felhasználását. Létezik azonban egy alternatív megközelítés is. Példaként tekintse meg az ideiglenes táblákról szóló cikket.
Korlátozások
A Transact-SQL tárolt eljárásainak néhány olyan aspektusa van, amelyek nincsenek implementálva a dedikált SQL-készletben, amelyek a következők:
- ideiglenes tárolt eljárások
- számozott tárolt eljárások
- bővített tárolt eljárások
- CLR tárolt eljárások
- titkosítási lehetőség
- replikációs lehetőség
- táblaértékű paraméterek
- írásvédett paraméterek
- alapértelmezett paraméterek
- végrehajtási környezetek
- return utasítás
Következő lépések
További fejlesztési tippekért tekintse meg a fejlesztés áttekintését.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: