php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #10549 Performance problem with Openlink ODBC drivers
Submitted: 2001-04-29 06:35 UTC Modified: 2017-01-29 04:22 UTC
From: a dot vdvelden at it dot correct dot nl Assigned:
Status: No Feedback Package: ODBC related
PHP Version: 4.0.4pl1 OS: Suse Linux 6.2
Private report: No CVE-ID: None
 [2001-04-29 06:35 UTC] a dot vdvelden at it dot correct dot nl
Hello,

I've experienced a compilation error and some huge performance problems setting up an ODBC connection via Openlink ODBC drivers.

I've configured my Php:

./configure --with-openlink=/usr/src/openlink

When compiling Php, it complains about missing the iodbc.h udbcext.h header files which are not included in the SDK software package of Openlink. 

When I remove the two above include files from ./ext/odbc/php_odbc.h line 125 128 the compilation  works fine without errors or warnings, and am able to etablish a connection to my Openlink drivers. 

When I query my DB from out of Php via Openlink, a simple query takes huges amounts of time, while the same query is very fast using the included odbctest utility from the Openlink SDK package.

I've run a query via Php and the odbctest utility and compared the two debug files and saw that Php uses the ExtendedSQLFetch C- function. The odbctest utility uses an 'normal' SQLFetch function.

So I have changed my ./ext/odbc/php_odbc.h file line 124 from:

#elif defined(HAVE_OPENLINK) /* OpenLink ODBC drivers */

#define ODBC_TYPE "Openlink"
#include <iodbc.h>
#include <isql.h>
#include <isqlext.h>
#include <udbcext.h>
#define HAVE_SQL_EXTENDED_FETCH 1
#define SQLSMALLINT SWORD
#define SQLUSMALLINT UWORD     

to:

#elif defined(HAVE_OPENLINK) /* OpenLink ODBC drivers */

#define ODBC_TYPE "Openlink"
// #include <iodbc.h>
#include <isql.h>
#include <isqlext.h>
// #include <udbcext.h>
// #define HAVE_SQL_EXTENDED_FETCH 1
#undef HAVE_SQL_EXTENDED_FETCH 
#define SQLSMALLINT SWORD
#define SQLUSMALLINT UWORD    

 
With this small change I was able to compile my Php succesfully and query my Database via the Openlink Package very fast!

Regards,

Anne van der Velden
Correct Express
The Netherlands





Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-05-01 16:59 UTC] kalowsky@php.net
before i commit such a patch, what version of OpenLink are you using?  
 [2001-05-02 03:22 UTC] a dot vdvelden at it dot correct dot nl
I'm using the Openlink Data Access Driver Suite (Multi Tier Edition) Version 4.0, Connecting to a Progress 8.3B Database running on an AIX Unix Box.
 [2001-05-10 14:04 UTC] ahill@php.net
this is a workaround for getting around the overhead required when server-side cursor libraries are in use.

OpenLink 4.0 implements a mixed cursor library in the server-side components.

Server-side cursors should be used sparingly for this reason

-Stephen Schadt


 [2001-05-11 14:58 UTC] kalowsky@php.net
This really isn't so much a bug, as a feature request.  Marking it as so...

After speaking (briefly) with Stephan Schadt it is believed that moving from the current cursor method (server-side) to something of a more mixed case is a GoodThing(TM).  

We'll see if my free time allows this to make it in for 4.1 or not...   

 [2010-12-29 10:17 UTC] jani@php.net
-Package: Feature/Change Request +Package: ODBC related
 [2017-01-20 17:04 UTC] heiglandreas@php.net
-Status: Open +Status: Feedback
 [2017-01-20 17:04 UTC] heiglandreas@php.net
Is this still relevant?
 [2017-01-29 04:22 UTC] php-bugs at lists dot php dot net
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Re-Opened". Thank you.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Mon Dec 30 14:01:28 2024 UTC