ORACLE中Cursor_sharing引數詳解

yingyifeng306發表於2022-04-15

簡介

     這個引數是用來告訴 Oracle 在什麼情況下可以共享遊標,即 SQL 重用。

    Cursor_sharing 引數有 3 個值可以設定:

     1) EXACT :通常來說, exact 值是 Oracle 推薦的,也是預設的,它要求 SQL 語句在完全相同時才會重用,否則會被重新執行硬解析操作。

     2) SIMILAR similar 是在 Oracle 認為某條 SQL 語句的謂詞條件可能會影響到它的執行計劃時,才會被重新分析,否則將重用 SQL

     3) FORCE force 是在任何情況下,無條件重用 SQL

 

引數設定

 

會話一:

SQL> show parameter cursor_sharing

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

cursor_sharing                       string      EXACT

 

SQL> alter session set cursor_sharing='force';

Session altered.

 

SQL> show parameter cursor_sharing

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

cursor_sharing                       string      force

SQL>

SQL> exit

 

會話二:

[ora11203@yikuer ~]$ sqlplus / as sysdba

SQL> show parameter cursor_sharing

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

cursor_sharing                       string      EXACT

 

 

方式實現Cursor_sharing 引數設定

 

 

使用tkprof 進行分析

 

 

 

會話級別和 hint 均可實現 Cursor_sharing 引數設定

方法分別是:

會話級別: alter session set cursor_sharing='force';

hint select /*+ CURSOR_SHARING_EXACT */ count(*) from test123.MC_ASH_20201203;

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23732248/viewspace-2887281/,如需轉載,請註明出處,否則將追究法律責任。

相關文章