Förberedda programsatser
I SQL används förberedda satser för att mallatisera liknande frågor eller uppdateringar. Adobe Experience Platform Query Service stöder förberedda satser med hjälp av en parametriserad fråga. Detta kan optimera prestanda eftersom du inte längre behöver tolka en fråga upprepade gånger.
Använda förberedda satser
Följande syntaxer stöds när förberedda satser används:
Förbered en programsats prepare
Den här SQL-frågan sparar den skrivna SELECT-frågan med namnet PLAN_NAME
. Du kan använda variabler, till exempel $1
, i stället för faktiska värden. Den här förberedda satsen sparas under den aktuella sessionen. Observera att plannamn är inte skiftlägeskänsliga.
SQL-format
PREPARE {PLAN_NAME} AS {SELECT_QUERY}
Exempel på SQL
PREPARE test AS SELECT * FROM table WHERE country = $1 AND city = $2;
Kör en förberett utdrag execute
Den här SQL-frågan använder den förberedda satsen som skapades tidigare.
SQL-format
EXECUTE {PLAN_NAME}('{PARAMETERS}')
Exempel på SQL
EXECUTE test('canada', 'vancouver');
Frigör en förberedd sats deallocate
Den här SQL-frågan används för att ta bort den namngivna förberedda satsen.
SQL-format
DEALLOCATE {PLAN_NAME}
Exempel på SQL
DEALLOCATE test;
Exempelflöde med förberedda satser
Till att börja med kan du ha en SQL-fråga, som den nedan:
SELECT * FROM table WHERE id >= 10000 AND id <= 10005;
SQL-frågan ovan returnerar följande svar:
Den här SQL-frågan kan parametriseras med följande förberedda sats:
PREPARE getIdRange AS SELECT * FROM table WHERE id >= $1 AND id <= $2;
Nu kan den förberedda programsatsen köras med följande anrop:
EXECUTE getIdRange(10000, 10005);
När det anropas ser du exakt samma resultat som tidigare:
När du är klar med den förberedda satsen kan du frigöra den med följande anrop:
DEALLOCATE getIdRange;