Тук ще ви дам едно странно предположение:Кеширане на база данни.
При първото изпълнение на страницата заявката не се кешира в базата данни, така че отнема повече време, като по този начин изтича срокът на PHP.
В останалите случаи заявката е много по-бърза.
Можете или да разделите заявката, както споменахте, или можете да опитате да увеличите срока на скрипта:
set_time_limit(0); //No time limit
set_time_limit(60); //60 seconds
За да сте сигурни, можете да използвате това за да почистите кеша на базата данни и да го използвате винаги, така че винаги ще стартирате страницата с чист кеш.