Я могу ответить на некоторые части вашего вопроса:
запрос станет подготовленным состоянием, пока существует один <queryparam
. Я в прошлом добавил
where 1 = <cfqueryparam value="1"
к запросам, у которых не было динамических параметров, чтобы они запускались как readyStatements
Большинство БД обрабатывают подготовленные условия аналогично хранимым процедурам, просто удерживаются временно, а не в течение длительного времени, однако детали, скорее всего, зависят от БД.
Предполагая, что вы используете драйверы, поставляемые с ColdFusion, если вы включите флажок «Активность журнала» в расширенной панели настройки DataSource, то вы получите очень подробную информацию о том, как CF взаимодействует с БД и когда он создает новое подготовленное состояние и повторно использует их. Я бы порекомендовал попробовать это для себя, так как здесь задействовано очень много факторов (настройка БД, драйвер, версия CF и т. Д.). Если вы используете ведение журнала БД, перезапустите CF перед запуском тестового кода, чтобы вы могли увидеть, как он создает подготовленные операторы, в противном случае вы просто увидите, что он повторно использует операторы по ID, не видя, что это за операторы. 1009 *