麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > Oracle > 正文

詳解ORACLE中游標的生命周期

2019-11-02 15:52:45
字體:
來源:轉載
供稿:網友

 在網絡或者書籍中,我們可以非常容易的了解到ORACLE中游標的生命周期包括如下部分:

1,打開游標-- open cursor,此步驟在 UGA 里申請一塊內存給游標使用,這個時候游標還沒有與sql語句關聯。
2,解析游標-- sql與游標關聯起來,解析sql的內容(包括執行計劃),解析后的內容會被加載到共享池中(share pool-- library cache)。在UGA申請的內存用來保存指向這個共享游標(share cursor)在library cache中的位置。
3,定義輸出變量-- 如果sql語句返回數據,必須先定義接收數據的變量。這一點不僅對查詢語句很重要,對于使用returning 自居的delete、insert和update 語句也很重要。
4,綁定輸入變量-- 如果sql語句使用了綁定變量,必須提供他們的值。綁定的過程是不做什么檢查。如果指定了無效的數據,執行的過程中會爆出一個運行時錯誤。
5,執行游標-- 執行跟游標關聯的sql。注意 數據庫并非總是在這一步做重要的事情。事實上,對于很多類型的查詢語句來說,真正的處理過程通常會被推遲到fetch數據階段。
6,獲取游標-- 如果sql語句返回數據,這一步會接受這些數據。特別是在查詢語句中,大部分的處理工作都是在這一步進行的。在查詢語句中,可能只會讀取部分記錄,換句話講,游標有可能在取到所有記錄前被關閉。
7,關閉游標-- 釋放UGA中與這個游標有關的資源,從而這些資源可供其他的游標使用。在library cache中的share cursor不會被清除,它會繼續保留在library cache 中,等待被重用(軟解析重用)。

重復的內容,我們不做過多介紹,今天我們來看一下游標生命周期中各個部分所扮演的角色,以及如何利用它們來優化我們的程序。

借鑒《oracle性能診斷藝術》中的代碼片段,我們來研究一下游標的生命周期;

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 create or replace procedure cursor_test as   l_ename  emp.ename%TYPE := 'SCOTT';   l_empno  dbms_sql.Number_Table;   l_cursor INTEGER;   l_retval INTEGER;   cnt integer := 1;   indx integer := 1;   res varchar2(4000); BEGIN   for i in 1 .. 1000 loop     l_cursor := DBMS_SQL.open_cursor;     DBMS_SQL.parse(l_cursor,                    'select empno from emp where ename <> :ename and 0 <> '||i , DBMS_SQL.native);     l_empno.delete();     DBMS_SQL.define_array(l_cursor, 1, l_empno,cnt,indx);     DBMS_SQL.bind_variable(l_cursor, ':ename', to_char(i));     l_retval := DBMS_SQL.execute(l_cursor);       while DBMS_SQL.fetch_rows(l_cursor) > 0 loop       dbms_sql.column_value(l_cursor, 1, l_empno);     end loop;     res :='';     for j in 1 .. l_empno.count() loop         res := res || L_EMPNO(j);      end loop;      DBMS_OUTPUT.PUT_LINE(res);     dbms_sql.close_cursor(l_cursor);   end loop; end; 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91九色视频在线播放 | 亚洲天堂午夜 | av免费片| 亚洲成年人免费网站 | 日本免费中文字幕 | 精品国产一区二区三区成人影院 | 亚欧在线免费观看 | 偷偷操偷偷操 | 国产精选在线 | 黄色片免费看看 | 成人一级黄色 | 黄色特级 | 毛片视频大全 | 亚洲一级片在线观看 | 国产精品av久久久久久无 | 少妇色诱麻豆色哟哟 | 请播放一级毛片 | 国产日产精品一区二区三区四区 | 欧美伦交 | 久久免费视频精品 | 欧美成人三级视频 | 久久另类视频 | 91av爱爱 | 日韩精品久久久久久久九岛 | av在线一区二区三区四区 | 精品亚洲二区 | 国产精选久久 | 欧美片一区二区 | 5xsq在线视频 | 51色视频| 康妮卡特欧美精品一区 | 视频一区二区三区中文字幕 | 亚洲成人免费网站 | 亚洲午夜久久久精品一区二区三区 | 麻豆国产网站 | 亚洲午夜精品视频 | 日本成年免费网站 | 欧美xxxx精品另类 | 久久成人午夜视频 | 涩涩激情网 | 综合精品一区 |