#22532 [Opn->Fbk]: after using oci colections the httpd process keeps the memory allocated

From: Date: Wed, 05 Mar 2003 01:52:34 +0000
Subject: #22532 [Opn->Fbk]: after using oci colections the httpd process keeps the memory allocated
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-34824@lists.php.net to get a copy of this message
ID: 22532 Updated by: sniper@php.net Reported By: adri_l at gmx dot net -Status: Open +Status: Feedback Bug Type: OCI8 related Operating System: Suse Linux 8.1 PHP Version: 4.3.1 New Comment: Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip Previous Comments: ------------------------------------------------------------------------ [2003-03-04 02:12:36] adri_l at gmx dot net Hi. I am testing some ways to insert big amounts of data in a oracle database and i encountered the following problem. During the script execution the memory usage of httpd daemon grows a lot and even after the script is ended the httpd process keeps the memory allocated. After two runs of the script the httpd process is using 28.7% of 512 MB of RAM. I'm using PHP 4.3.1, Oracle 9.2.1.0.1 and apache 1.3.27. Hope you can help. The oracle table in which the data is inserted has the following structure: SQL> describe adrian_test; Name Null? Type ----------- -------- ----------------- NAME VARCHAR2(255) NR NUMBER VAL NUMBER The script is: <? OCIInternalDebug (1); function bulk_test($link,$nr_query){ // Create three types number, float, text $my_q="create or replace type mname as varray($nr_query) of varchar(255)"; $my_res=OCIParse($link,$my_q); OCIExecute($my_res); OCIFreeStatement($my_res); $my_q="create or replace type mnr as varray($nr_query) of number"; $my_res=OCIParse($link,$my_q); OCIExecute($my_res); OCIFreeStatement($my_res); $my_q="create or replace type mval as varray($nr_query) of number"; $my_res=OCIParse($link,$my_q); OCIExecute($my_res); OCIFreeStatement($my_res); //Create collections $cname=OCINewCollection($link,"MNAME"); $cnr=OCINewCollection($link,"MNR"); $cval=OCINewCollection($link,"MVAL"); //Create bulk data for($i=0;$i<$nr_query;$i++){ $cname->append("Nume".$i); $cval->append($i); $cnr->append($i+100); }; //Create the PLSQL query $mbstr="begin forall i in 1..".$nr_query." insert into adrian_test (name,nr,val) values (:vname(i),:vnr(i),:vval(i));end;"; $mbq=OCIParse($link,$mbstr); //Bind collections OCIBindByName($mbq,":vname",$cname,sizeof($cname),OCI_B_SQLT_NTY); OCIBindByName($mbq,":vnr",$cnr,sizeof($cnr),OCI_B_SQLT_NTY); OCIBindByName($mbq,":vval",$cval,sizeof($cval),OCI_B_SQLT_NTY); //Execute Query OCIExecute($mbq); OCIFreeStatement($mbq); //Free Collections $cname->free(); $cnr->free(); $cval->free(); //Drop types $dtque=OCIParse($link,"drop type mname"); OCIExecute($dtque); OCIFreeStatement($dtque); $dtque=OCIParse($link,"drop type mnr"); OCIExecute($dtque); OCIFreeStatement($dtque); $dtque=OCIParse($link,"drop type mval"); OCIExecute($dtque); OCIFreeStatement($dtque); }; $linkid = OCINLogon("scott", "tiger"); bulk_test($linkid,500000); ?> I hope this can be solved easily and that i'm not reporting false bugs or things like this. Best regards, Adrian CIocildau ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=22532&edit=1

« previous php.bugs (#34824) next »