Подготвените от сървъра изрази консумират ресурси от страна на сървъра, за да съхранят плана за изпълнение на израза. Прагът предоставя евристика, която кара изявленията, които действително се използват „често“, да бъдат подготвени. Дефиницията на "често" по подразбиране е 5.
Имайте предвид, че подготвените оператори от страна на сървъра могат да причинят лоши планове за изпълнение, тъй като не се основават на параметрите, предадени по време на подготовката. Ако параметрите, предадени на подготвен израз, имат различна селективност на конкретен индекс (например), тогава общият план на заявката на подготвения израз може да е неоптимален. Като друг пример, ако имате ситуация, в която изпълнението на заявката е много по-голямо от разходите за създаване на план за обяснение и планът за обяснение не е правилно зададен поради липса на параметри за свързване, може да е по-добре да не използвате подготвени отчети от страна на сървъра.
Когато драйверът достигне прага, той ще подготви израза, както следва:
if (!oneShot)
{
// Generate a statement name to use.
statementName = "S_" + (nextUniqueID++);
// And prepare the new statement.
// NB: Must clone the OID array, as it's a direct reference to
// the SimpleParameterList's internal array that might be modified
// under us.
query.setStatementName(statementName);
query.setStatementTypes((int[])typeOIDs.clone());
}
Името на израза се изпраща като част от кабелния протокол, който казва на Postgres да го подготви от страна на сървъра.