亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

PL/SQL編程經(jīng)驗小結(jié)

時間:2024-07-09 15:12:46 SQL 我要投稿

PL/SQL編程經(jīng)驗小結(jié)

  1、當(dāng)需要向表中裝載大量的數(shù)據(jù)流或者需要處理大量的數(shù)據(jù)流的時候,能否使用管道提高處理效率?

  管道函數(shù)對于改善并行查詢的性能非常方便,它加快往表中加載數(shù)據(jù)的速度。管道函數(shù)的使用總結(jié)如下兩點:

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

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

  2.如何使PL/SQL程序等待一段時間執(zhí)行?

  方法就是使用DBMS_LOCK包的SLEEP函數(shù),可以進行精確定時,其語法為:

  DBMS_LOCK.SLEEP(secondsINNUMBER);

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

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

  另外如果是不同會話(session)之間的定時,就必須使用DBMS_PIPE包的函數(shù)來實現(xiàn)會話間的消息傳遞。

  4.當(dāng)PL/SQL返回一個數(shù)據(jù)集的時候,該使用集合還是游標(biāo)?

  一般情況下,有以下兩點作為依據(jù):

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

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

  5.如何更有效的在PL/SQL中使用游標(biāo)?

  游標(biāo)是PL/SQL中一個非常重要的概念,對數(shù)據(jù)庫的檢索主要依靠游標(biāo)來操作。在PL/SQL中有兩類游標(biāo),一類是隱式游標(biāo),如selectclnointov_clnofromtable_detail.另外一類是顯式游標(biāo),如cursorv_curisselectclnofromtable_detail。對于游標(biāo)的使用這里給出以下幾點建議:

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

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

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

【PL/SQL編程經(jīng)驗小結(jié)】相關(guān)文章:

PL/SQL編程中的經(jīng)驗小結(jié)09-21

oracle的sql語句01-21

SQL優(yōu)化大全09-09

時間管理經(jīng)驗小結(jié)范文09-24

《PHP編程最快明白》第八講:php啟發(fā)和小結(jié)07-13

SQL查詢語句大全10-24

SQL語句的理解原則10-05

PHP防止SQL注入的例子09-25

mysql SQL語句積累參考10-02

執(zhí)行sql原理l分析05-12