Bug #81564 [NEW]: Extreme ODBC performance degradation after Windows PHP 7.3 to 7.4 upgrade
From: ckieffer at gmail dot com
Operating system: Windows Server 2019
PHP version: 7.4.25
Package: ODBC related
Bug Type: Bug
Bug description:Extreme ODBC performance degradation after Windows PHP 7.3 to 7.4 upgrade
Description:
------------
Have a batch processing PHP script that runs thousands of individual
odbc_exec() SELECTS and INSERTS against a SQL Server 2019 database.
After upgrade from PHP 7.3 to 7.4 the process runs 7x slower (20 minutes
before upgrade, 180 minutes after). This process maps lots of relatively
small database records (no big nvarchar fields, etc).
I haven't found any similar problem/bug reports. The process does
complete eventually, so I understand that this isn't necessarily a bug.
I may have to rewrite to use PDO or migrate to a DB stored procedure but
I'd like to understand the cause.
Environment and Testing Notes
System: Windows NT 10.0 build 17763 (Windows Server 2016) AMD64
Configure: cscript /nologo /e:jscript configure.js
"--enable-snapshot-build" "--enable-debug-pack"
"--with-pdo-oci=c:\php-snap-build\deps_aux\oracle\x64\instantclient_12_1\sdk,shared"
"--with-oci8-12c=c:\php-snap-build\deps_aux\oracle\x64\instantclient_12_1\sdk,shared"
"--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared"
"--without-analyzer" "--with-pgo"
- All 64-bit software and drivers.
- Upgraded precompiled PHP 7.3.32 (TS VC15) for Windows to 7.4.25. Also
tried PHP 8.0 which is just as slow.
- Windows Server 2019 web and SQL Servers (no change during upgrade).
- Stock PHP ODBC extension config (no change during upgrade).
- Recent MS ODBC driver for SQL Server. Tried updating to latest
available (17.8.11).
Expected result:
----------------
This script completes in about 25 minutes under PHP 7.2.x and 7.3.x.
Actual result:
--------------
After upgrade to PHP 7.4.24, the script takes over 3 hours to complete.
--
Edit bug report at https://bugs.php.net/bug.php?id=81564&edit=1
--
Fix committed: https://bugs.php.net/fix.php?id=81564&r=fixed
Fixed in release: https://bugs.php.net/fix.php?id=81564&r=alreadyfixed
Need backtrace: https://bugs.php.net/fix.php?id=81564&r=needtrace
Need Reproduce Script: https://bugs.php.net/fix.php?id=81564&r=needscript
Try newer version: https://bugs.php.net/fix.php?id=81564&r=oldversion
Not developer issue: https://bugs.php.net/fix.php?id=81564&r=support
Expected behavior: https://bugs.php.net/fix.php?id=81564&r=notwrong
Not enough info: https://bugs.php.net/fix.php?id=81564&r=notenoughinfo
Submitted twice: https://bugs.php.net/fix.php?id=81564&r=submittedtwice
register_globals: https://bugs.php.net/fix.php?id=81564&r=globals
PHP version support discontinued: https://bugs.php.net/fix.php?id=81564&r=phptooold
Daylight Savings: https://bugs.php.net/fix.php?id=81564&r=dst
IIS Stability: https://bugs.php.net/fix.php?id=81564&r=isapi
Install GNU Sed: https://bugs.php.net/fix.php?id=81564&r=gnused
Floating point limitations: https://bugs.php.net/fix.php?id=81564&r=float
No Zend Extensions: https://bugs.php.net/fix.php?id=81564&r=nozend
MySQL Configuration Error: https://bugs.php.net/fix.php?id=81564&r=mysqlcfg
Thread (4 messages)
- ckieffer at gmail dot com