slower execution of pl/sql code [message #440997] |
Thu, 28 January 2010 04:41 |
mandark
Messages: 23 Registered: October 2009
|
Junior Member |
|
|
Hi,
I am having issue with performance of following PL/SQL code
in Oracle iDS 10g with oracle 11i database
PROCEDURE load_credit_soc IS
in_file TEXT_IO.FILE_TYPE ;
out_file TEXT_IO.FILE_TYPE ;
exception_raised VARCHAR2(1) ;
linebuf VARCHAR2(32767) ;
TXT_TEMP VARCHAR2(100);
V_TEMP TEXT_IO.FILE_TYPE ;
temp_emp varchar2(6);
temp_area varchar2(20);
temp_area_emp varchar2(100);
temp_line number := 0;
CNT NUMBER;
SAMMY VARCHAR2(10);
BEGIN
in_file := TEXT_IO.FOPEN(:filename , 'r');
--
:module := 'TEXT FILE SPLITTER';
--
SAMMY := 'TEST';
--
CNT := 1;
--
V_TEMP := TEXT_IO.FOPEN('C:\SPLITTER\' || SAMMY || TO_CHAR(CNT) || '.' || 'TXT','W' );
--
IF TEXT_IO.IS_OPEN(in_file) THEN
BEGIN
loop
--
-- message('Inside Loop'); pause;
temp_line := temp_line + 1;
:NBT_MODULE := 'Processing Line # ' || to_char(temp_line) ;
--
:NBT_EMP := temp_emp;
:NBt_CNT := to_char(CNT);
--
synchronize;
--
--
TEXT_IO.GET_LINE(in_file, linebuf);
--
IF INSTR(UPPER(LINEBUF), :IDENTIFIER) > 0 THEN
--
temp_emp := LTRIM(RTRIM(SUBSTR(LINEBUF, :START_POS, :SIZER)));
--
END IF;
--
--
IF INSTR(UPPER(LINEBUF),'AREA :') > 0 THEN
--
temp_area := SUBSTR(LINEBUF, 113, 5);
--
END IF;
--
IF INSTR(UPPER(LINEBUF), :TERMINATOR) > 0 THEN
--
TEXT_IO.PUT_LINE(V_TEMP,linebuf);
--
TEXT_IO.FCLOSE(V_TEMP);
TXT_TEMP := 'C:\SPLITTER\'|| SAMMY || TO_CHAR(CNT) || '.'||'TXT';--
--
-- temp_area_emp := LTRIM(RTRIM(TEMP_AREA)) || temp_emp;
temp_area_emp := temp_emp;
--
FILE_XFER(TXT_TEMP, temp_area_emp);
--
CNT := CNT + 1;
--
V_TEMP := TEXT_IO.FOPEN('C:\SPLITTER\' || SAMMY || TO_CHAR(CNT) || '.' || 'TXT','W' );
-- message('STARTING NEW ' );
-- message('STARTING NEW ' );
--
--
ELSE
--
TEXT_IO.PUT_LINE( V_TEMP ,linebuf );
END IF;
--
END LOOP;
--TEXT_IO.FCLOSE(V_TEMP);
EXCEPTION
WHEN no_data_found THEN
TEXT_IO.FCLOSE(in_file) ;
TEXT_IO.FCLOSE(out_file) ;
END ;
ELSE
message('FPS0111:file not loaded'); pause ;
END IF ;
-- message('COMPLETEDD First ROUND ') ; pause ;
END;
when I am using above code in D2K forms 4.5 with oracle 8i as database execution of code which is generating text files takes around 10 mins for 7000 files to be generated.
But with oracle iDS 10g and oracle 11i as database it is taking around 70 mins for same no of files to be geneated.
As it is not accessing any of the tables, what might be the problem with execution of the code?
|
|
|
|