Q

Number of open cursors increasing

I am facing a problem on Oracle9i related to open cursors, ie ref cursors. When I am connecting to the database through the connection pool, I find the number of open cursors increasing to about 500, when only two users are working. I took care of the closing of result sets and statements. Can I have useful information on this?

There are two types of cursors, implicit and explicit cursors. In PL/SQL, you create an explicit cursor with the CURSOR declaration. In JDBC programs, you create an explicit cursor for any SQL statement you pass to the database.

But sometimes, the database will create cursors for you. Any time the database creates a cursor for you that you have not explicitly stated, this is called an implicit cursor. Why does the system do this? The main reason is to handle all of the recursive SQL statements the system generates on your behalf. When you query a table, the system needs to query the data dictionary to see if that table exists, if you have permissions to view that table, etc.

The bottom line is that you are seeing open cursors for recursive SQL statements. Just enable SQL_TRACE for your session to see all of the recursive SQL being generated for you!

For More Information


This was first published in September 2002

Dig deeper on Oracle database design and architecture

Pro+

Features

Enjoy the benefits of Pro+ membership, learn more and join.

Have a question for an expert?

Please add a title for your question

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

-ADS BY GOOGLE

SearchDataManagement

SearchBusinessAnalytics

SearchSAP

SearchSQLServer

TheServerSide

SearchDataCenter

SearchContentManagement

SearchFinancialApplications

Close