Vooraf voorbereide instructies
In SQL, worden de voorbereide verklaringen gebruikt om gelijkaardige vragen of updates te templatiseren. Adobe Experience Platform Query Service steunt voorbereide verklaringen door een parameterized vraag te gebruiken. Hierdoor kunnen de prestaties worden geoptimaliseerd, omdat u een query niet langer herhaaldelijk opnieuw hoeft te parseren.
Vooraf voorbereide instructies gebruiken
Wanneer u kant-en-klare instructies gebruikt, worden de volgende syntaxis ondersteund:
Een voorbereide instructie voorbereiden prepare
Deze SQL-query slaat de geschreven SELECT-query op met de opgegeven naam PLAN_NAME
. U kunt variabelen gebruiken, zoals $1
in plaats van de werkelijke waarden. Deze voorbereide instructie wordt opgeslagen tijdens de huidige sessie. Houd er rekening mee dat de namen van de abonnementen niet hoofdlettergevoelig.
SQL-indeling
PREPARE {PLAN_NAME} AS {SELECT_QUERY}
Voorbeeld-SQL
PREPARE test AS SELECT * FROM table WHERE country = $1 AND city = $2;
Een voorbereide instructie uitvoeren execute
Deze SQL-query gebruikt de voorbereide instructie die eerder is gemaakt.
SQL-indeling
EXECUTE {PLAN_NAME}('{PARAMETERS}')
Voorbeeld-SQL
EXECUTE test('canada', 'vancouver');
Toewijzing van een voorbereid overzicht opheffen deallocate
Deze SQL-query wordt gebruikt om de benoemde voorbereide instructie te verwijderen.
SQL-indeling
DEALLOCATE {PLAN_NAME}
Voorbeeld-SQL
DEALLOCATE test;
Voorbeeld van stroom met voorbereide instructies
Aanvankelijk, kunt u een SQL vraag, zoals hieronder hebben:
SELECT * FROM table WHERE id >= 10000 AND id <= 10005;
De bovenstaande SQL-query retourneert de volgende reactie:
Voor deze SQL-query kan de parameter worden ingesteld met de volgende voorbereide instructie:
PREPARE getIdRange AS SELECT * FROM table WHERE id >= $1 AND id <= $2;
Nu, kan de voorbereide verklaring worden uitgevoerd door de volgende vraag te gebruiken:
EXECUTE getIdRange(10000, 10005);
Wanneer deze wordt aangeroepen, ziet u precies dezelfde resultaten als voorheen:
Nadat u het gebruiken van de voorbereide verklaring hebt gebeëindigd, kunt u het ombepalen door de volgende vraag te gebruiken:
DEALLOCATE getIdRange;