#php #odbc #php-7.4 #php-7.3 #msodbcsql17
Вопрос:
Есть PHP-скрипт пакетной обработки, который запускает тысячи отдельных выборок odbc_exec() и ВСТАВОК в базу данных SQL Server 2019. После обновления с PHP 7.3 до 7.4 процесс завершается в 7 раз медленнее (за 20 минут до обновления, 180 минут после).
Я не нашел никаких подобных сообщений о проблемах/ошибках и нуждаюсь в помощи в устранении неполадок. Да, возможно, мне придется переписать, чтобы использовать PDO или перейти на хранимую процедуру БД, но я хотел бы понять, что изменилось с PHP или расширением ODBC PHP, чтобы снизить производительность этого скрипта в PHP 7.4.
Примечания по окружающей среде и тестированию
- Процесс отображает множество относительно небольших записей базы данных (без больших полей nvarchar и т. Д.).
- Все 64-разрядное программное обеспечение и драйверы.
- Обновлен предварительно скомпилированный PHP 7.3.32 (TS VC15) для Windows до версии 7.4.25. Также попробовал PHP 8.0, который работает так же медленно.
- Веб-серверы Windows Server 2019 и SQL — серверы (без изменений во время обновления).
- Стандартная конфигурация расширения PHP ODBC (без изменений во время обновления).
- Последний драйвер MS ODBC для SQL Server. Попытался обновить до последней доступной версии (17.8.11).