оптимизация запросов php sql - PullRequest
       0

оптимизация запросов php sql

2 голосов
/ 20 сентября 2011

Я работаю с PHP и Oracle.При выполнении запросов я использую метод oci_set_prefetch() перед oci_execute() для быстрой загрузки.Поскольку мой вывод большой, я устанавливаю его на 1000 .Хотя времени для полного исполнения сейчас меньше, но все же не удовлетворительно.Тот же запрос, если он выполняется в базе данных, напрямую доставляет данные за 2-3 секунды, тогда как при выполнении с помощью методов PHP это занимает гораздо больше времени.

Есть ли какой-либо другой способ сократить время выборки?

Заранее спасибо

1 Ответ

0 голосов
/ 20 сентября 2011

Ваша настройка параметра oci_set_prefetch увеличивает задержку вашего запроса; то есть задержка между моментом выдачи запроса и моментом получения первых результатов. Вы поручили Oracle подождать, пока у него не будет 1000 строк данных, прежде чем отправлять их в PHP. Он старательно следует вашим инструкциям.

Вы видите быстрый результат в sql * plus или любом другом интерактивном клиентском запросе, который вы используете, потому что вы видите первую строку вашего набора результатов довольно быстро, и вы одурачены, полагая, что весь запрос быстрый, потому что результаты выбрасываются мимо тебя.

Вам нужна целая тысяча строк? Попробуйте отключить параметр предварительной выборки и посмотрите, получите ли вы более благоприятные результаты. Попробуйте ограничить длину вашего набора результатов AND ROWNUM <= 10 или чем-то подобным, и посмотрите, поможет ли это.

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