<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 4, comments - 5, trackbacks - 0, articles - 10

    Oracle Direct-Path Insert學(xué)習(xí)筆記

    Posted on 2006-11-14 09:22 勇敢的心 閱讀(2466) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Oracle
    (1)、Oracle插入數(shù)據(jù)有兩種方式:
    a、常規(guī)插入:重新使用table中的自由空間,在已有數(shù)據(jù)中插入新數(shù)據(jù);維護(hù)引用完整性約束。
    b、Direct-Path插入:在表中已有數(shù)據(jù)之后插入新數(shù)據(jù);數(shù)據(jù)直接插入數(shù)據(jù)文件,繞過(guò)buffer cache;已有數(shù)據(jù)中的自由空間沒(méi)有被重新利用;忽略了引用完整性約束。
    ?
    (2)、連續(xù)模式:一個(gè)進(jìn)程執(zhí)行sql語(yǔ)句;
    ?????? 并行模式:多個(gè)進(jìn)程同時(shí)執(zhí)行一個(gè)sql語(yǔ)句,即并行執(zhí)行。
    ?
    (3)Direct-Path插入的優(yōu)點(diǎn):
    1、可以disable redo log和undo log;而常規(guī)插入?yún)s不可以如此,并且重用自由空間和維護(hù)引用完整性。
    2、通過(guò)CREATE TABLE...AS SELECT 語(yǔ)句可以從現(xiàn)有表中創(chuàng)建新表,使用Direct-Path插入可以在插入時(shí)更新定義在目標(biāo)表上的任意索引。
    3、Direct-Path插入能保證事務(wù)的原子性,即使在并行模式下。使用SQL*Loader在并行模式加載中不能保證原子性。
    4、當(dāng)并行Direct-Path加載發(fā)生錯(cuò)誤時(shí),索引被標(biāo)志成UNUSABLE。
    5、如果想使用表壓縮的壓縮格式存儲(chǔ)數(shù)據(jù),必須使用Direct-Path插入。
    ?
    ?
    (4)使用Direct-Path插入:
    ?
    在連續(xù)模式中,在Insert語(yǔ)句中指定“APPEND”提示,在INSERT關(guān)鍵字之后,或者在INSERT子查詢(xún)中的SELECT關(guān)鍵字之后。
    在并行DML模式中,默認(rèn)的就是DIRECT-PATH插入,為了運(yùn)行并行DML模式,必須滿(mǎn)足以下條件:
    a、必須是Oracle企業(yè)版;
    b、必須在session中使并行DML生效,執(zhí)行以下sql語(yǔ)句:
    ALTER SESSION { ENABLE | FORCE } PARALLEL DML;
    c、必須指定table的并行屬性,在創(chuàng)建的時(shí)候或者其他時(shí)候,或者在insert操作時(shí)使用“PARALLEL”提示。
    ?
    為了使Direct-Path Insert模式失效,在INSERT語(yǔ)句中指定“NOAPPEND”提示,覆蓋并行DML模式。
    ?
    (5)、Direct-Path INSERT 是如何工作的
    ?
    在分區(qū)表和非分區(qū)表都可以使用Direct-Path INSERT
    ?
    連續(xù)Direct-Path INSERT到分區(qū)和非分區(qū)表
    ? 單個(gè)進(jìn)程插入數(shù)據(jù)到高水位標(biāo)志之上,當(dāng)執(zhí)行完commit之后,高水位標(biāo)志得到更新。
    ?
    并行Direct-Path INSERT到分區(qū)表
    ? 類(lèi)似于serial Direct-Path INSERT,每個(gè)并行操作分配給一個(gè)或者多個(gè)分區(qū),每個(gè)并行操作插入數(shù)據(jù)到各自的分區(qū)段的高水位標(biāo)志之上,commit之后,用戶(hù)就能看到更新的數(shù)據(jù)。
    ?
    并行Direct-Path INSERT到非分區(qū)表
    ? 每個(gè)并行執(zhí)行分配一個(gè)新的臨時(shí)段,并插入數(shù)據(jù)到臨時(shí)段。當(dāng)commit運(yùn)行后,并行執(zhí)行協(xié)調(diào)者合并新的臨時(shí)段到主表段,用戶(hù)就能看到更新的數(shù)據(jù)。
    ?
    為Direct-Path INSERT指定的Log模式
    ?? Direct-Path INSERT可以使用Log或者不使用Log。
    ?
    (6)、其他需要注意的地方:
    ??? 索引維護(hù):Oracle在Direct-Path INSERT 操作末尾,對(duì)具有索引的表執(zhí)行索引維護(hù),這樣就避免了在drop掉索引后,再rebuild。
    ??? 使用的空間:Direct-Path INSERT比常規(guī)的插入需要更多的空間。因?yàn)樗鼘?shù)據(jù)插入在高水位之上。并行插入非分區(qū)表需要更多的空間,因?yàn)樗枰獮槊恳粋€(gè)并行創(chuàng)建臨時(shí)段。
    ??? 鎖:在插入期間,數(shù)據(jù)庫(kù)在表上獲得排他鎖,用戶(hù)不能在表上執(zhí)行并行插入、更新或者刪除操作,并行的索引創(chuàng)建和build也不被允許。但卻可以并行查詢(xún),但查詢(xún)返回的是插入之前的結(jié)果集。

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 人人爽人人爽人人片av免费| 日韩在线一区二区三区免费视频| 日本视频免费观看| 久久永久免费人妻精品| 国产精品成人免费视频网站京东| 2022中文字字幕久亚洲| 亚洲av成人一区二区三区| 一日本道a高清免费播放| 久久精品a一国产成人免费网站| 综合亚洲伊人午夜网 | 亚洲一区在线视频| h片在线播放免费高清| 免费可以在线看A∨网站| 国产亚洲美女精品久久久久狼 | 边摸边吃奶边做爽免费视频网站| 国产精品免费大片| 免费很黄很色裸乳在线观看| 亚洲最新中文字幕| 你是我的城池营垒免费观看完整版| 性感美女视频在线观看免费精品| 亚洲AV永久无码精品| 国产亚洲精彩视频| 91手机看片国产永久免费| 色噜噜亚洲精品中文字幕| 亚洲精品国产精品| 最近中文字幕mv免费高清在线 | 午夜在线亚洲男人午在线| 69国产精品视频免费| AV在线亚洲男人的天堂| 久久久久久久久无码精品亚洲日韩| 无码av免费一区二区三区试看| 日批日出水久久亚洲精品tv| 亚洲youjizz| 午夜精品免费在线观看| 亚洲精品tv久久久久| 亚洲午夜精品一区二区麻豆| 全部免费毛片在线播放| 亚洲一区二区女搞男| 乱人伦中文视频在线观看免费| 成人a免费α片在线视频网站| 亚洲精品国产电影午夜|