Могу ли я предотвратить длинные запросы в PDO? - PullRequest
6 голосов
/ 21 августа 2009

Есть ли способ заставить объект PDO выдать ошибку, если запрос занимает слишком много времени? Я попытался PDO :: ATTR_TIMEOUT безрезультатно.

Я бы хотел, чтобы запрос выдавал ошибку, если он выполняется дольше определенного времени. Это не то, что я могу сделать в базе данных, т. Е. Не выполнять задания по обслуживанию на БД или что-то в этом роде.

Ответы [ 2 ]

3 голосов
/ 21 августа 2009

Я не уверен, что вы подразумеваете под «Это не то, что я могу сделать в базе данных», но я бы посоветовал вам, чтобы человек, управляющий базой данных, настроил профиль Oracle, чтобы ограничить это на стороне базы данных , Существуют такие параметры, как CPU_PER_CALL и LOGICAL_READS_PER_CALL, которые могут ограничивать запросы. При желании профиль может быть применен только к конкретным пользователям.

2 голосов
/ 21 августа 2009

Я не уверен, что вы можете сделать это в Oracle, но я собираюсь сказать, что это невозможно сделать в PHP, поскольку PHP отправляет запрос в Oracle для запуска, а затем ждет ответа Oracle. Может быть возможно изменить расширение PDO для поддержки этого, но вам нужно будет изменить код расширения (фактический код C), так как, вероятно, нет никакого способа сделать это только на PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...