Добрый день,

Лет семь уже работаю с интербейзом, но только на днях, благодаря данной 
конференции, узнал о том, что запрос можно не анпрепэрить при завершении 
транзакции. А ведь компоненты IBX именно так и поступают! Заглянув в код 
методов TIBSQL.Prepare и FreeHandle можно обнаружить в первом шесть вызовов 
интербейзовских функций (шесть обращений к серверу?) а во втором -- один. 
Итого: семь.

Поскольку запрос можно держать подготовленным на время всего коннекта, 
естественно возникает желание организовать кэш подготовленных запросов, что 
теоретически позволит сэкономить семь обращение к серверу на каждом 
повторном использовании запроса.

Перед тем как дать наркоз больному и приступить к радикальной операции, 
хочется спросить у знающих людей:

1) какие подводные камни тут возможны? почему IBX анпрепэрит запрос, хотя 
этого можно было бы и не делать? (один ответ я знаю: на тот случай, если 
изменятся метаданные)

2) насколько для сервера критично количество подготовленных запросов? если 
их будет порядка 5 000? и "висеть" они будет на протяжении рабочего дня 8-10 
часов?

Андрей 



Ответить