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

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

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

    posts - 262,  comments - 221,  trackbacks - 0

    1.表數據的存儲及格式

    一個Oracle數據塊(Data block)通常存儲著一條記錄的一個片段(Row piece),假如一條記錄以多個記錄片段的方式保存,那么這些記錄片段之間會被互相"鏈接"。

    當一個表擁有的列數目超過255個,那么每條記錄的第255個字段之后的數據,會被存放到另外的記錄片段中,以Rowid相連。這被稱為(Intra-block chaining)。

    因為同一條記錄,不管被分成多少個row piece存儲,每一個piece的rowid都是相同的。通過這一點就可以把數據“鏈接”起來。

    每一個記錄片段,不管是鏈接的還是非鏈接的,都包含了一個記錄頭(Row header)



    2. Rowid

    rowid會一直伴隨Oracle記錄,直到記錄被刪除。假如記錄被export,然后import那么rowid也會改變。

    3. 表壓縮

    Duplicate values in all the rows and columns in a block are stored once at the beginning of the block, in what is called a symbol table for that block. All occurrences of such values are replaced with a short reference to the symbol table.

    Oracle通過剔除重復的字段值,并替換為對唯一值的引用,來壓縮表空間。表壓縮可以在表空間級別,表級別,表分區(qū)級別指定。多個壓縮策略可以作用于同一個表

    4. 表空值

    Nulls are stored in the database if they fall between columns with data values. In these cases they require 1 byte to store the length of the column (zero) Nulls are not indexed, except when the cluster key column value is null or the index is a bitmap index.

    5. 分區(qū)表


    分區(qū)表允許用戶將一個大的表劃分成多個小的,可獨立管理的片段--稱為分區(qū)表,甚至分區(qū)還可以再劃分分區(qū),分區(qū)表的好處是每個分區(qū)能夠被分別的管理,而且在一個分區(qū)上進行的操作對其它分區(qū)沒有產生影響

    6. 臨時表


    臨時表中的數據是會話私有的(這一點類似于Java中ThreadLocal類),數據僅對創(chuàng)建它的會話可見。臨時表可以被多個不同事務或會話同時訪問,但是每個會話或事務只能看到臨時表中屬于自己的那份私有數據。

    在使用trunc命令清空數據時,只會清除屬于自己的那部分臨時數據,而不清空其它會話在臨時表中的數據。

    請注意:由于臨時表的數據在事務結束或會話結束后就被自動丟棄,所以數據的最終變化過程并不會記錄到redo日志文件。但是對于臨時表在計算過程中產生的數據,同樣會有undo log和對應的redo log產生。也就是說redo log是針對DML操作而產生的,而不是針對表的變化而產生的。

    Oracle的實用套件可以export/import臨時表的定義(實際上臨時表本身并不會自動刪除,和持久表一樣它的定義一樣也是保存在shcema下的),但是臨時表中的數據不能被導出,即便用戶使用了rows=Y這樣的選項。

    不同于普通類型的表在定義時就被創(chuàng)建,為了節(jié)省空間臨時表只在第一條Insert語句執(zhí)行時才創(chuàng)建。這也就是說:
    由于臨時表是再第一次insert語句被執(zhí)行時再創(chuàng)建,所以假如有一個臨時表被創(chuàng)建后,另外一個連接在沒有insert數據之前執(zhí)行select,將不會看到任何數據。因為其他session插入的數據對它來說是不可見的。但是沒有執(zhí)行insert就select,update,delete則肯定會報錯。

    當一個會話向臨時表發(fā)出了Insert請求時,就和臨時表進行了綁定。當會話向臨時表發(fā)出Trancate命令,或者事務被提交、回滾后會話和臨時表之間的綁定關系就被解除。

    請注意下面幾點:

    ①在同一個會話中,不同的事務不能同時并發(fā)地使用同一個基于事務的臨時表

    ②來自不同會話的事務則可以并發(fā)的訪問同一個基于事務的臨時表。

    ③假如事務中已經執(zhí)行了Insert操作,此時假如事務尚未結束則事務的子事務不能再執(zhí)行Insert操作(因為父事務尚未結束,不允許并發(fā)訪問)

    ④假如事務的子事務執(zhí)行了Insert操作,那么當子事務結束后其插入的數據將自動被刪除。父事務或其它子事務可以執(zhí)行Insert操作(因為子事務已經結束)


    這是因為:因為臨時表上面是沒有DML鎖的,所以同一個會話中的不同transaction如果并行訪問臨時表的話會引起數據混亂。但是不同的session中不同的事務并行訪問同一個臨時表是可以的,因為此時數據都是彼此不可見的。

    7. 外部表

    外部表(External table)可以訪問數據庫外的資源,就像訪問數據庫內部的表資源一樣。外部表本身并不包含數據,它只包含兩部分的定義:

    1.表的列定義
    2.表的列定和外部資源的轉換映射規(guī)則

    至于數據如何存儲和讀取則由驅動程序負責。由于外部表本身不存儲數據而是從其它資源處讀取數據,所以外部表是只讀的,不能執(zhí)行任何DML操作和索引創(chuàng)建操作。

    外部表的Loading/unloading操作分別指從外部表中加載數據到數據庫的表,以及從數據庫中的表讀取數據然后插入到外部表中。由于外部表和外部資源文件之間松散的聯系,所以外部資源文件可以包含或不包含出現在外部表中的字段,數據類型也可能不一致。至于兩者之間如何進行轉換則靠外部的驅動程序完成。

    那么外部表的用途在那里呢:當我們業(yè)務計算過程中需要臨時讀取一批大量數據(比如說日志記錄),而這批數據又不是存儲在自己的數據庫(通常是遠程數據庫),而且數據不是以表的方式存儲(通常是CSV文件),那么我們就需要從外部資源中來讀入數據了。由于外部表并不存儲數據,所以我們完全不怕大量的臨時數據占據了寶貴的磁盤空間。

    由于external table本身并不存儲實際數據,而是依賴于外部資源。所以一旦數據被加載到external table后,如果需要更新。必須先unload后再load



    -------------------------------------------------------------
    生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
    posted on 2009-03-02 16:47 Paul Lin 閱讀(1345) 評論(0)  編輯  收藏 所屬分類: Oracle Concept
    <2009年3月>
    22232425262728
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    常用鏈接

    留言簿(21)

    隨筆分類

    隨筆檔案

    BlogJava熱點博客

    好友博客

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 3d成人免费动漫在线观看| 久久免费视频99| 免费无码不卡视频在线观看| 日韩亚洲产在线观看| 精品久久久久国产免费| 亚洲中文字幕久久无码| 国产在线观看免费不卡| 一区二区免费国产在线观看| 亚洲情侣偷拍精品| 国产精品免费大片一区二区| 亚洲精品无码午夜福利中文字幕 | 香蕉蕉亚亚洲aav综合| 最新国产乱人伦偷精品免费网站 | 久久水蜜桃亚洲av无码精品麻豆| 日本一卡精品视频免费| 亚洲mv国产精品mv日本mv| 在线观看视频免费国语| 免费的黄网站男人的天堂| 国产午夜亚洲精品午夜鲁丝片| 你是我的城池营垒免费观看完整版| 亚洲av日韩av无码黑人| 青青在线久青草免费观看| 亚洲国产午夜精品理论片在线播放 | 日本免费一区二区久久人人澡| 91亚洲精品视频| 在线视频免费观看www动漫| 日韩毛片一区视频免费| 亚洲成熟xxxxx电影| 毛片a级三毛片免费播放| 免费无码AV一区二区| 亚洲AV美女一区二区三区| 成年美女黄网站色大免费视频| 色噜噜狠狠色综合免费视频| 久久精品国产精品亚洲精品| 国产福利在线免费| 二区久久国产乱子伦免费精品| 亚洲色av性色在线观无码| 免费国产a国产片高清| 99爱在线精品视频免费观看9| 亚洲熟女综合一区二区三区| 亚洲午夜国产精品无码|