中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      PL/SQL編程中的經(jīng)驗(yàn)小結(jié)

      時(shí)間:2024-09-21 16:03:27 SQL 我要投稿
      • 相關(guān)推薦

      PL/SQL編程中的經(jīng)驗(yàn)小結(jié)

        平時(shí)在PL/SQL中的編程中遇到一些問題,這里以問答的形式來進(jìn)行把它們總結(jié)下來,以供大家分享。

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

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

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

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

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

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

        DBMS_LOCK.SLEEP (seconds IN NUMBER);

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

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

        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)或者簡(jiǎn)單的耗時(shí)執(zhí)行語(yǔ)句*/

        End loop;

        END;

        /

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

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

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

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

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

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

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

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

        2) 盡量使用顯式游標(biāo)來處理,因?yàn)橄鄬?duì)于隱式游標(biāo)來說,顯式游標(biāo)的速度更快一些。

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

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

      SQL中的單記錄函數(shù)03-30

      SQL中的單記錄函數(shù)盤點(diǎn)03-07

      Java中的動(dòng)態(tài)代碼編程03-05

      關(guān)于SQL在數(shù)據(jù)檢查中的應(yīng)用03-29

      如何快速掌握SQL Server中的日志轉(zhuǎn)移03-29

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

      SQL優(yōu)化大全03-08

      oracle的sql語(yǔ)句01-21

      時(shí)間管理經(jīng)驗(yàn)小結(jié)范文03-19

      主站蜘蛛池模板: 南木林县| 久分夜色精品国产噜噜亚洲av| 成年毛片18成年毛片| 开封县| 亚洲嫩模高清在线视频| 色哟哟av网站在线观看| av一区二区不卡久久| 成人免费无码视频在线网站| 日韩亚洲国产av自拍| 女人被躁到高潮嗷嗷叫免费软| 中文精品久久久久中文| 亚洲精品综合色区二区| 天堂网av一区二区三区四区| 西乌| 高清一级淫片a级中文字幕| 亚洲av色香蕉一区二区三区蜜桃 | 久久国产A∨一二三| 少妇一区二区三区久久久| 精品人妻丰满久久久a| 国产成人一区二区三区视频在线 | 免费人成黄页网站在线观看国内| 久久亚洲av午夜福利精品| 日本丰满少妇高潮呻吟| 国产成人亚洲合集青青草原精品| 商都县| 武乡县| 亚洲欧美日韩精品高清| 安溪县| 阿拉善盟| 国产亚洲av日韩av| 亚洲国产成人久久综合三区| 亚洲综合久久久中文字幕| 日本一区二区三区看片| 亚洲国产字幕| 股票| 日韩亚洲国产综合二区| 风韵丰满妇啪啪区老老熟女杏吧| 日韩av一区二区毛片| 日韩国产av一区二区三区精品| 91免费国产| A亚洲VA欧美VA国产综合|