У меня есть несколько запросов, которые намного медленнее при использовании подготовленных операторов в 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] });
но это тоже не помогло.
есть идеи?