From:             
Operating system: Linux
PHP version:      5.3.3
Package:          MSSQL related
Bug Type:         Bug
Bug description:MSSQL slow on large resultsets via Apache module

Description:
------------
Hi there,



After a lot of research I found a serious performance problem. I think the
attached test script is self explaining.



So basically the performance is dramatically worse if I use PHP as module
in comparison with the PHP cli. CentOS does not have a different php.ini
for the Apache module and cli version.



I found a similar bug 28610, and I tried the proposed solution. But output
buffering is already turned on.



*setup*

I use PHP 5.3.3, installed at CentOS via http://iuscommunity.org/. They use
this configure line:

'./configure' '--build=x86_64-redhat-linux-gnu'
'--host=x86_64-redhat-linux-gnu' '--target=x86_64-redhat-linux-gnu'
'--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr'
'--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc'
'--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64'
'--libexecdir=/usr/libexec' '--localstatedir=/var'
'--sharedstatedir=/usr/com' '--mandir=/usr/share/man'
'--infodir=/usr/share/info' '--cache-file=../config.cache'
'--with-libdir=lib64' '--with-config-file-path=/etc'
'--with-config-file-scan-dir=/etc/php.d' '--disable-debug' '--with-pic'
'--disable-rpath' '--without-pear' '--with-bz2' '--with-exec-dir=/usr/bin'
'--with-freetype-dir=/usr' '--with-png-dir=/usr' '--with-xpm-dir=/usr'
'--enable-gd-native-ttf' '--with-t1lib=/usr' '--without-gdbm'
'--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr'
'--with-openssl' '--with-pcre-regex=/usr' '--with-zlib' '--with-layout=GNU'
'--enable-exif' '--enable-ftp' '--enable-magic-quotes' '--enable-sockets'
'--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--with-kerberos'
'--enable-ucd-snmp-hack' '--enable-shmop' '--enable-calendar'
'--without-mime-magic' '--without-sqlite' '--with-libxml-dir=/usr'
'--with-xml' '--with-system-tzdata' '--with-apxs2=/usr/sbin/apxs'
'--without-mysql' '--without-gd' '--disable-dom' '--disable-dba'
'--without-unixODBC' '--disable-pdo' '--disable-xmlreader'
'--disable-xmlwriter' '--without-sqlite3' '--disable-phar'
'--disable-fileinfo' '--disable-json' '--without-pspell' '--disable-wddx'
'--without-curl' '--disable-posix' '--disable-sysvmsg' '--disable-sysvshm'
'--disable-sysvsem' 



Test script:
---------------
<?

require_once('../inc/TPInit.inc.php');





$sql = "SELECT TOP 10 * FROM productVersions WHERE subCategoryID = 8;";

benchmark('sql', 'start');

$result = mssql_query($sql);

echo 'Small result set <br/>' . "\n";

echo 'Rows in returnset: ' . mssql_num_rows($result) . '<br/>' . "\n";

echo 'Time: ' . benchmark('sql', 'show') . '<br/>' . "\n";





$sql = "SELECT * FROM productVersions WHERE subCategoryID = 8;";

benchmark('sql', 'start');

$result = mssql_query($sql);

echo 'Large result set <br/>' . "\n";

echo 'Rows in returnset: ' . mssql_num_rows($result) . '<br/>' . "\n";

echo 'Time: ' . benchmark('sql', 'show') . '<br/>' . "\n";



Expected result:
----------------
Small result set

  Rows in returnset: 10

  Time: 0.0054750442504883

Large result set

  Rows in returnset: 73782

  Time: 34.852993011475

Actual result:
--------------
Small result set

  Rows in returnset: 10

  Time: 0.0027780532836914

Large result set

  Rows in returnset: 73782

  Time: 0.45695114135742

-- 
Edit bug report at http://bugs.php.net/bug.php?id=53000&edit=1
-- 
Try a snapshot (PHP 5.2):            
http://bugs.php.net/fix.php?id=53000&r=trysnapshot52
Try a snapshot (PHP 5.3):            
http://bugs.php.net/fix.php?id=53000&r=trysnapshot53
Try a snapshot (trunk):              
http://bugs.php.net/fix.php?id=53000&r=trysnapshottrunk
Fixed in SVN:                        
http://bugs.php.net/fix.php?id=53000&r=fixed
Fixed in SVN and need be documented: 
http://bugs.php.net/fix.php?id=53000&r=needdocs
Fixed in release:                    
http://bugs.php.net/fix.php?id=53000&r=alreadyfixed
Need backtrace:                      
http://bugs.php.net/fix.php?id=53000&r=needtrace
Need Reproduce Script:               
http://bugs.php.net/fix.php?id=53000&r=needscript
Try newer version:                   
http://bugs.php.net/fix.php?id=53000&r=oldversion
Not developer issue:                 
http://bugs.php.net/fix.php?id=53000&r=support
Expected behavior:                   
http://bugs.php.net/fix.php?id=53000&r=notwrong
Not enough info:                     
http://bugs.php.net/fix.php?id=53000&r=notenoughinfo
Submitted twice:                     
http://bugs.php.net/fix.php?id=53000&r=submittedtwice
register_globals:                    
http://bugs.php.net/fix.php?id=53000&r=globals
PHP 4 support discontinued:          http://bugs.php.net/fix.php?id=53000&r=php4
Daylight Savings:                    http://bugs.php.net/fix.php?id=53000&r=dst
IIS Stability:                       
http://bugs.php.net/fix.php?id=53000&r=isapi
Install GNU Sed:                     
http://bugs.php.net/fix.php?id=53000&r=gnused
Floating point limitations:          
http://bugs.php.net/fix.php?id=53000&r=float
No Zend Extensions:                  
http://bugs.php.net/fix.php?id=53000&r=nozend
MySQL Configuration Error:           
http://bugs.php.net/fix.php?id=53000&r=mysqlcfg

Reply via email to