Re: ouch
From: David Fitzjarrell <oratune_at_yahoo.com>
Date: Wed, 31 Aug 2011 14:10:22 -0700 (PDT)
Message-ID: <1314825022.35086.YahooMailNeo_at_web65409.mail.ac4.yahoo.com>
Date: Wed, 31 Aug 2011 14:10:22 -0700 (PDT)
Message-ID: <1314825022.35086.YahooMailNeo_at_web65409.mail.ac4.yahoo.com>
SQL> select substr('BonzoDogDooDah', 4, 7) from dual; SUBSTR( ------- zoDogDo Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 0 consistent gets 0 physical reads 0 redo size 436 bytes sent via SQL*Net to client 385 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed SQL> SQL> select substring('BonzoDogDooDah', 4, 7) from dual; SUBSTRING('BONZODOGDOODAH',4,7) -------------------------------------------------------------------------------- zoDogDo Statistics ---------------------------------------------------------- 22 recursive calls <===== 22 times more work for the function 0 db block gets 17 consistent gets 0 physical reads 0 redo size 439 bytes sent via SQL*Net to client 385 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 5 sorts (memory) 0 sorts (disk) 1 rows processed SQL> It's wasteful and shortsighted, in my opinion. Why trade 1 recursive call for 22 by writing this function? David Fitzjarrell From: "Uzzell, Stephan" <SUzzell_at_MICROS.COM> To: Oracle L <oracle-l_at_freelists.org> Sent: Wednesday, August 31, 2011 1:31 PM Subject: ouch Found a gem in one of my databases today: FUNCTION "SUBSTRING" (INSTRING IN varchar2, STARTPOS IN number, LENGTH IN number) RETURN varchar2 IS RESULT varchar2(8000); BEGIN select substr(INSTRING, STARTPOS, LENGTH) into RESULT from DUAL; RETURN(RESULT); END; I’m offended by the sheer aesthetics of this. And I want to go yell at the developers that this is wrong. But I’d need a better argument than that it offends me. Is there some way to quantify the impact (if any) of wrapping a built-in function like this? Stephan Uzzell
-- http://www.freelists.org/webpage/oracle-lReceived on Wed Aug 31 2011 - 16:10:22 CDT