主頁 > 知識庫 > Oracle9iPL/SQL編程的經驗小結

Oracle9iPL/SQL編程的經驗小結

熱門標簽:語音電話機器人營銷方案 南通防封外呼系統(tǒng)運營商 宜賓外呼系統(tǒng)廠家 廣州市400電話辦理 百變地圖標注 淮安自動外呼系統(tǒng)開發(fā) 修改高德地圖標注 語音電話機器人缺點 地圖標注原件
正在看的ORACLE教程是:Oracle9iPL/SQL編程的經驗小結。平時在PL/SQL中的編程中遇到一些問題,這里以問答的形式來進行把它們總結下來,以供大家分享。

  1、當需要向表中裝載大量的數據流或者需要處理大量的數據流的時候,能否使用管道提高處理效率?
  管道函數對于改善并行查詢的性能非常方便,它加快往表中加載數據的速度。管道函數的使用總結如下兩點:

  每當在查詢里使用PL/SQL函數時,該查詢將被序列化,即一個處理器只能運行一個查詢實例,那么在這種情況下不可能使用并行查詢(比如在數據倉庫中要經常使用這項技術)。因此,為了使用并行查詢就必須使用管道函數,這樣也就加快了執(zhí)行的速度。

  管道函數的輸入參數必須是一個引用記錄集類型(即ref cursor),而返回的是嵌套表類型(其表中每一行對應每一個引用記錄)。在使用管道函數之前,必須先在程序頭寫上PARALLEL_ENABLE,這樣才能在查詢語句中使用管道函數來處理了。

  2. 如何使PL/SQL程序等待一段時間執(zhí)行?
 
  方法就是使用DBMS_LOCK包的SLEEP函數,可以進行精確定時,其語法為:

DBMS_LOCK.SLEEP (seconds IN NUMBER);

  3.需要在一張表插入一條記錄之后等若干秒后再執(zhí)行另外一個操作,如何在PL/SQL程序里進行定時操作?

  一般的做法是用循環(huán)作延遲,利用 DBMS_UTILITY的gettime函數來檢測當前的時間,程序代碼如下:

DECLARE
v_delaytime CONSTANT INTEGER := 100;
v_starttime INTEGER ;
v_endtime INTEGER ;
BEGIN
V_starttime := DBMS_UTILITY.get_time;
V_endtime := DBMS_UTILITY.get_time;
While abs(V_endtime- V_starttime) v_delaytime loop
/*空循環(huán)或者簡單的耗時執(zhí)行語句*/
End loop;
END;
/
   另外如果是不同會話(session)之間的定時,就必須使用DBMS_PIPE包的函數來實現會話間的消息傳遞。

  4.當PL/SQL返回一個數據集的時候,該使用集合還是游標?

  一般情況下,有以下兩點作為依據:

  1) 如果PL/SQL程序返回多多行數據給另外一個PL/SQL程序的話,這里就建議使用集合,因為這樣可以利用集合的批收集(bulk collection)來提高從數據庫提取數據的速度。

  2) 如果需要在PL/SQL程序的環(huán)境中把數據返回到宿主語言環(huán)境中(如Sql*plus,c,delphi等),這時應該使用游標變量來返回這些數據,因為幾乎所有的宿主語言都支持游標變量,但不是所有的宿主語言都支持集合。這樣可以增強程序的可移植性。

  5.如何更有效的在PL/SQL中使用游標?

  游標是PL/SQL中一個非常重要的概念,對數據庫的檢索主要依靠游標來操作。在PL/SQL中有兩類游標,一類是隱式游標,如select clno into v_clno from table_detail.另外一類是顯式游標,如cursor v_cur is select clno from table_detail。對于游標的使用這里給出以下幾點建議:

  1) 盡可能的使用bulk collection。它能夠較大的提高運行性能,在Oracl9i的第二版,甚至可以使用bulk collection來直接將數據寫入到記錄表

  2) 盡量使用顯式游標來處理,因為相對于隱式游標來說,顯式游標的速度更快一些。

  3) 如果查詢的表很小或者是靜態(tài)的,可以把該表緩存到一個包級的集合里。這樣,你的查詢函數就直接從集合里(即進程全局區(qū),PGA cache),而不是從系統(tǒng)全局區(qū)(SGA)來取數據,這樣的處理速度會提升很多。

您可能感興趣的文章:
  • Oracle中PL/SQL中if語句的寫法介紹
  • Oracle中在pl/sql developer修改表的2種方法
  • oracle iSQL*PLUS配置設置圖文說明
  • ORACLE PL/SQL 觸發(fā)器編程篇介紹
  • plsql連接oracle數據庫報ora 12154錯誤解決方法
  • oracle客戶端PLSQL連接失敗解決方法
  • Oracle 10G:PL/SQL正規(guī)表達式(正則表達式)手冊
  • oracle 安裝與SQLPLUS簡單用法
  • oracle sqlplus 常用命令大全
  • 在Oracle PL/SQL中游標聲明中表名動態(tài)變化的方法
  • Oracle使用PL/SQL操作COM對象
  • PL/SQL實現Oracle數據庫任務調度
  • Oracle PL/SQL語言入門基礎
  • PL/SQL編程經驗小結開發(fā)者網絡Oracle
  • Oracle PL/SQL入門案例實踐
  • Oracle PL/SQL入門慨述
  • OraclePL/SQL單行函數和組函數詳解
  • 64位win7下pl/sql無法連接oracle解決方法

標簽:嘉峪關 池州 南平 聊城 通化 股票投資 襄陽 南平

巨人網絡通訊聲明:本文標題《Oracle9iPL/SQL編程的經驗小結》,本文關鍵詞  Oracle9iPL,SQL,編程,的,經驗,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle9iPL/SQL編程的經驗小結》相關的同類信息!
  • 本頁收集關于Oracle9iPL/SQL編程的經驗小結的相關信息資訊供網民參考!
  • 推薦文章