У меня есть несколько запросов, которые выполняются намного медленнее при использовании подготовленных операторов в Postgres (это известная проблема, см. http://www.postgresql.org/docs/current/static/sql-prepare.html). Поэтому я хочу отключить подготовку операторов для этих запросов.
в DBIx::Class я могу отключить подготовленные операторы глобально при подключении к базе данных, передав параметр «pg_server_prepare => 0» в файле connect_info. но я не вижу, как изменить это для существующего соединения. учитывая DBIx::Class::Schema, я пробовал это:
$schema->storage->connect_info->[0]->{'pg_server_prepare'} = 0;
если я зарегистрирую connect_info после этого вызова, я увижу новое значение для этого параметра, но драйвер базы данных по-прежнему использует подготовленные операторы. Я также пытался отключить и снова подключить
$schema->storage->connect_info->[0]->{'pg_server_prepare'} = 0;
$schema->storage->disconnect;
$schema->connect(@{ $schema->storage->connect_info->[0] });
но и это не помогло.
Любые идеи?