SQL Parsing Flow Diagram
========================

 Statement
 Submitted
 |
 Is it in an open cursor?--------------YES----V
 |                                            |
 NO                                           |
 |                                            |
 Is SESSION_CACHED_CURSORS = Value            |
 and cursor in           --------------YES----V   In these 3 cases we
 Session Cursor cache?                        |   know that the cursor has
 |                                            |   already been parsed, so
 NO                                           |   re-parsing is
 |                                            |   unnecessary.
 Is HOLD_CURSOR=Y                             |
 and cursor in           --------------YES----V
 Held cursor cache?                           |
 |                                            |
 NO                                           |
 |                                            |              ^
 OPEN A CURSOR                                |  CLIENT SIDE |
 |                                            | -------------|
 Statement is Hashed and compared             |  SERVER SIDE |
 with the Hashed value in the sql area        |              V
 |                                            V
 Is it in sql area? --YES-(Soft Parse)--> ---------
 |                                       |         |
 NO                                      | EXECUTE |
 |                                       |         |
 PARSE STATEMENT ('Hard' Parse)---------> ---------


di addm ada misleading mustinya SESSION_CACHED_CURSORS bukan open_cache_cursors.

kalo open_cursor sendiri lebih cenderung sebagai hard limit saja yg
berlaku "per session".

session_cached_cursor tsb akan berhubungan dengan area memory di SGA
(library cache / shared pool).
dimana cara kerjanya, setelah pengerjaan kursor selasai dan diclose,
oracle akan meletakannya di session_cached_cursors untuk keperluan
jika cursor tsb direquest lagi oleh aplikasi, namun syaratnya cursor
tsb sudah pernah diopen >= 3 kali.

session_cached_cursor akan match dengan behavior aplikasi yg dibangun
dgn oracle form, dimana jika navigasi dari form1 ke form2 yg lain akan
mengclose semua cursor form1 dan open cursors di form2, jika user
balik lagi view form1 makan dgn cursor di cache di
session_cached_cursors akan lebih efisien.


-- 
thanks and regards
ujang | oracle dba | mysql dba
http://ora62.wordpress.com


2009/3/4 Andes Febrian <[email protected]>:
> Dear gurus,
>
> pada EM selalu muncul di ADDM findings, bahwa parameter open cursor dan
> open_cache_cursor kurang, kemudian oracle suggest untuk menaikkan open
> cursor dan open_cache_cursors. saya sudah menaikkan open cursor dari
> parameter default menjadi 1024 tp untuk open_cache_cursor tidak saya
> tambahkan.
>
> pertanyaan nya adalah, apakah perlu untuk menaikkan parameter open cursors
> dan open_cache_cursors ? ada kah impact ke database, maksudnya ke impact ke
> memory sga atau apalah ? apakah saya ikuti saran yg oracle berikan di ADDM
> findings ??
>
> fyi, SGA skrg 8GB, tadinya 3GB. PGA 1.6GB. memory physic 16GB.
>
> many thanks.
>
> --
> Cheers,
> ^_^ Andes ^_^
>
>

Kirim email ke