What does the V$SQL_SHARED_CURSOR say for all these child cursors? You can use my script @nonshared.sql <sqlid> to format this nicely: http://www.tanelpoder.com/files/scripts/nonshared.sql Youl'll see output like this (only probably much more of it): SQL> *@nonshared 5phajvmtd7wsy* SQL_ID : 5phajvmtd7wsy ADDRESS : 3175A618 CHILD_ADDRESS : 3175B56C CHILD_NUMBER : 0 ----------------- SQL_ID : 5phajvmtd7wsy ADDRESS : 3175A618 CHILD_ADDRESS : 2FD2D6DC CHILD_NUMBER : 1*CURSOR_PARTS_MISMATCH : Y*----------------- SQL_ID : 5phajvmtd7wsy ADDRESS : 3175A618 CHILD_ADDRESS : 3343C208 CHILD_NUMBER : 2*CURSOR_PARTS_MISMATCH : Y*----------------- PL/SQL procedure successfully completed. SQL> -- Tanel Poder http://tech.e2sn.com http://blog.tanelpoder.com On Mon, Jul 12, 2010 at 2:29 AM, Martin Klier <usn@xxxxxxxxx> wrote: > Hi list, > > I've upgraded an Oracle 10gR2 to 11gR2 yesterday. > > Now one UPDATE statement (means one single SQL ID) produces a huge > amount of child cursors, about 500-1500 within ten minutes. All of them > are re-used for 5-20 times, then the statement is reparsed and a new > child cursor generated, and so on. All of them are SHAREABLE, but > neither bind aware nor bind sensitive. > > cursor sharing is EXACT here. > > There's one UPDATE statement seems to be affected in an extreme way, > causing heavy "cursor: mutex S" latches due to excessive reparsing of > the same SQL, and due to that, CPU load is excessive. > > Other statements are not affected, or only too less to be notified > within this thunderstorm. We are talking about 45 sessions issuing the > same UPDATE statement about 30-100 times per second. > > I am grateful for every suggestion where to look and what to do. An > Oracle SR has already been issued, but I want not miss your collected > experience for some OSS engineer... ;) > -- > Usn's IT Blog for Linux, Oracle, Asterisk > http://www.usn-it.de > > -- > //www.freelists.org/webpage/oracle-l > > >