![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Hello, i need *your help for this situation : I have a table :"CUSTOMER" with two thousand of records, *the required time to retrieve this information with a query is less than 2 seconds : SELECT ** FROM CUSTOMER But i need get this information through a function that require more than 2 MINUTES!!! * FUNCTION getCUSTOMER( ) RETURN SYS_REFCURSOR AS * * * * CUR * SYS_REFCURSOR; * BEGIN * *OPEN cur FOR ' SELECT * FROM CUSTOMER '; * *RETURN cur; * END; *There is any database parameter that i need change ?? Any suggestion, please ?? *Regards, *Santana |
#3
| |||
| |||
|
|
On Sep 11, 11:15*am, Santana <paulito.sant... (AT) gmail (DOT) com> wrote: Hello, i need *your help for this situation : I have a table :"CUSTOMER" with two thousand of records, *the required time to retrieve this information with a query is less than 2 seconds : SELECT ** FROM CUSTOMER But i need get this information through a function that require more than 2 MINUTES!!! * FUNCTION getCUSTOMER( ) RETURN SYS_REFCURSOR AS * * * * CUR * SYS_REFCURSOR; * BEGIN * *OPEN cur FOR ' SELECT * FROM CUSTOMER '; * *RETURN cur; * END; *There is any database parameter that i need change ?? Any suggestion, please ?? *Regards, *Santana You have problems you're not telling us about with reference to how you're using this function; I do not see the same performance 'problem' you see for 2000 records: SQL> @customer_ref_cur_ex SQL> create table customer( * 2 * * * * *cust_id * *number, * 3 * * * * *cust_name *varchar2(40), * 4 * * * * *cust_addr1 varchar2(50), * 5 * * * * *cust_addr2 varchar2(50), * 6 * * * * *cust_pst_cd varchar2(10), * 7 * * * * *cust_cntct *varchar2(40), * 8 * * * * *cust_email *varchar2(80) * 9 *); Table created. Elapsed: 00:00:00.04 SQL SQL> alter table customer * 2 *add constraint customer_pk * 3 *primary key(cust_id); Table altered. Elapsed: 00:00:00.04 SQL SQL> begin * 2 * * * * *for i in 1..2000 loop * 3 * * * * * * * * *insert into customer * 4 * * * * * * * * *values (i, 'Sample'||i, i||' Avenue '||i, 'Suite '||i, 'A'||i||'B', 'Narweegy Sping '||i, 'narweegy'||i||'@sample'|| i||'.com'); * 5 * * * * *end loop; * 6 * 7 * * * * *commit; * 8 * 9 *end; *10 */ PL/SQL procedure successfully completed. Elapsed: 00:00:00.15 SQL SQL> set autotrace on SQL> set timing on SQL> set linesize 300 SQL SQL> select * from customer; * *CUST_ID CUST_NAME CUST_ADDR1 CUST_ADDR2 * * * * * * * * * * * * * * * * * * * * CUST_PST_C CUST_CNTCT * * * * * * * * * * * * * * * CUST_EMAIL ---------- ---------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------- ---------------------------------------- ---------------------------------------------------------------------------**----- * * * *315 Sample315 * * * * * * * * * * * * * * * *315 Avenue 315 * * * * * * * * * * * * * * * * * * Suite 315 * * * * * * * * * * * * * * * * * * * * *A315B * * *Narweegy Sping 315 * * * * * * * * * * * narweegy... (AT) sample315 (DOT) com * * * *316 Sample316 * * * * * * * * * * * * * * * *316 Avenue 316 * * * * * * * * * * * * * * * * * * Suite 316 * * * * * * * * * * * * * * * * * * * * *A316B * * *Narweegy Sping 316 * * * * * * * * * * * narweegy... (AT) sample316 (DOT) com * * * *317 Sample317 * * * * * * * * * * * * * * * *317 Avenue 317 * * * * * * * * * * * * * * * * * * Suite 317 * * * * * * * * * * * * * * * * * * * * *A317B * * *Narweegy Sping 317 * * * * * * * * * * * narweegy... (AT) sample317 (DOT) com * * * *318 Sample318 * * * * * * * * * * * * * * * *318 Avenue 318 * * * * * * * * * * * * * * * * * * Suite 318 * * * * * * * * * * * * * * * * * * * * *A318B * * *Narweegy Sping 318 * * * * * * * * * * * narweegy... (AT) sample318 (DOT) com * * * *319 Sample319 * * * * * * * * * * * * * * * *319 Avenue 319 * * * * * * * * * * * * * * * * * * Suite 319 * * * * * * * * * * * * * * * * * * * * *A319B * * *Narweegy Sping 319 * * * * * * * * * * * narweegy... (AT) sample319 (DOT) com ... 2000 rows selected. Elapsed: 00:00:06.39 SQL SQL> create or replace FUNCTION getCUSTOMER * 2 *RETURN SYS_REFCURSOR AS * 3 * * * * *cur * SYS_REFCURSOR; * 4 * *BEGIN * 5 * 6 * 7 * * OPEN cur FOR 'SELECT * FROM CUSTOMER'; * 8 * 9 *10 * * RETURN cur; *11 * *END; *12 */ Function created. Elapsed: 00:00:00.03 SQL SQL> show errors No errors. SQL SQL> variable mycur refcursor SQL SQL> begin * 2 * * * * *select getcustomer * 3 * * * * *into :mycur * 4 * * * * *from dual; * 5 * 6 *end; * 7 */ PL/SQL procedure successfully completed. Elapsed: 00:00:00.00 SQL SQL> print mycur * *CUST_ID CUST_NAME CUST_ADDR1 CUST_ADDR2 * * * * * * * * * * * * * * * * * * * * CUST_PST_C CUST_CNTCT * * * * * * * * * * * * * * * CUST_EMAIL ---------- ---------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------- ---------------------------------------- ---------------------------------------------------------------------------**----- * * * *315 Sample315 * * * * * * * * * * * * * * * *315 Avenue 315 * * * * * * * * * * * * * * * * * * Suite 315 * * * * * * * * * * * * * * * * * * * * *A315B * * *Narweegy Sping 315 * * * * * * * * * * * narweegy... (AT) sample315 (DOT) com * * * *316 Sample316 * * * * * * * * * * * * * * * *316 Avenue 316 * * * * * * * * * * * * * * * * * * Suite 316 * * * * * * * * * * * * * * * * * * * * *A316B * * *Narweegy Sping 316 * * * * * * * * * * * narweegy... (AT) sample316 (DOT) com * * * *317 Sample317 * * * * * * * * * * * * * * * *317 Avenue 317 * * * * * * * * * * * * * * * * * * Suite 317 * * * * * * * * * * * * * * * * * * * * *A317B * * *Narweegy Sping 317 * * * * * * * * * * * narweegy... (AT) sample317 (DOT) com * * * *318 Sample318 * * * * * * * * * * * * * * * *318 Avenue 318 * * * * * * * * * * * * * * * * * * Suite 318 * * * * * * * * * * * * * * * * * * * * *A318B * * *Narweegy Sping 318 * * * * * * * * * * * narweegy... (AT) sample318 (DOT) com * * * *319 Sample319 * * * * * * * * * * * * * * * *319 Avenue 319 * * * * * * * * * * * * * * * * * * Suite 319 ... 2000 rows selected. Elapsed: 00:00:05.60 SQL I see no reason this should take 60 times longer to use the function. You need to explain how, exactly, you're using this function if you really want assistance. David Fitzjarrell- Hide quoted text - - Show quoted text - |
![]() |
| Thread Tools | |
| Display Modes | |
| |