70 likes | 211 Views
Cursor Sharing. Bug: 2138662. Bug 2138662: cursor_sharing=force causes ORA-7445 and core dumps. related bugs 2195595: production instance crashed with a ORA-07445 [11] 1358871: cursor_sharing = force causes ORA-7445 (ttcclr) in proc program
E N D
Cursor Sharing Bug: 2138662
Bug 2138662: cursor_sharing=force causes ORA-7445 and core dumps • related bugs • 2195595: production instance crashed with a ORA-07445 [11] • 1358871: cursor_sharing = force causes ORA-7445 (ttcclr) in proc program • 2118514: ora-3113 and ORA-7445 [rworirw2()+704] while running a query having order by • 1951929: recieving many ORA-7445 [kqrgcu()+244] errors • introduced in Oracle 8.1.7.2, some fixed in Oracle 8.1.7.4
What is Cursor Sharing? • Cursor sharing determines what statements are considered to be identical, and can therefore share the same cursor or cache entry. • The statement is rewritten bind variables replacing literals • Can be enabled as session level • In a badly written application this can avoid excessive parse times.
What goes wrong? • Heap corruption caused by rewritten statement • Associated with ORDER BY clause
Workarounds • cursor_sharing = exact • cursor_space_for_time = true • but sometimes causes ORA-4031 • in which case flush shared_pool frequently
Summary • The bugs may be different aspects of the same problem • cursor_sharing can cause a heap corruption in the shared pool • I would suggest that it is not safe to use this feature to deal with poor performance caused by high parse times.
David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk www.go-faster.co.uk