Hazırlanmış ifade (prepared statement)
SQL deseni: yer tutuculu ($1, ?) bir sorgu şablonu gönderilir, parametreler ayrıca bağlanır. İki ana kazanç: SQL enjeksiyonuna karşı koruma (parametreler asla SQL olarak yorumlanmaz) ve yürütme planının önbelleğe alınması.
Yaşam döngüsü: PREPARE (şablon gönderilir, ayrıştırıcı ve planlayıcı çalışır) → EXECUTE (değerler gönderilir, plan çalıştırılır). Plan önbelleği: sonraki çağrılar ayrıştırma ve planlamayı atlayıp doğrudan yürütmeye geçer. Ödünleşim: planlayıcı genel bir plan yapar, bu da belirli değerler için en iyisi olmayabilir. PostgreSQL’de 5 genel plan çağrısından sonra özel bir planın daha iyi olup olmadığına bakılır.
Bağlantı havuzu sorunu: hazırlanmış ifadeler oturum başınadır; havuzlanmış bağlantılar genel olarak paylaşılırsa ifadeler sık sık yeniden hazırlanır. PgBouncer’ın transaction modu hazırlanmış ifadeleri bozar.