оптимизировать работу с базой. Я на 99% уверен что:
- товары вставляются по одному
- перед каждой вставкой вы проверяете наличие категорий и прочего через базу, причем индексов в базе у вас нет или mysql (вы же mysql используете?) у вас настроена дефолтным образом и выходит много чтений с диска
Хотя даже при таком раскладе 20 часов для 16К элементов это как-то сильно долго...