oracle 的lob & long

          一直認為lob類型的性能要好過long,但是之前只了解到long的種種限制,oracle也是不推薦使用long類型,這幾天由于一個項目問題,產品里面一個表字段用了long類型,分析下來操作long的時候,性能有所影響,想把它改成lob,就簡單驗證了一下

          首先創建兩個測試表:

          create table test_long (a int primary key,b long);
          create table test_clob (a int primary key,b clob);

          用附件java代碼,往兩個表里面各插入100條數據,保證插入數據是一樣的,lob字段長度為10k(如果小于4k,oracle可以把它保存到到表內,不會存儲在表外,性能沒有問題,這個我基本確定,而且我們應用中這個字段經常會超過4k)。

          做一個簡單查詢對比一下:

          SQL> set autotrace traceonly;
          SQL> select * from test_clob where a=1;

          統計信息
          ----------------------------------------------------------
                  331  recursive calls
                    0  db block gets
                   69  consistent gets
                    4  physical reads
                    0  redo size
                 1278  bytes sent via SQL*Net to client
                  837  bytes received via SQL*Net from client
                    5  SQL*Net roundtrips to/from client
                   12  sorts (memory)
                    0  sorts (disk)
                    1  rows processed

          SQL> select * from test_long where a=1;

          統計信息
          ----------------------------------------------------------
                  236  recursive calls
                    0  db block gets
                   43  consistent gets
                    0  physical reads
                    0  redo size
                  675  bytes sent via SQL*Net to client
                  531  bytes received via SQL*Net from client
                    3  SQL*Net roundtrips to/from client
                    5  sorts (memory)
                    0  sorts (disk)
                    1  rows processed

          對比一下,long開銷比lob小,當然你可以把lob字段啟用緩存,把4次物理讀去掉,但還是多了(73-43)次邏輯讀,update也試了一下,lob產生的redo比long大,就不列出來了,有興趣的可以自己試試

          測試下來,看來之前的認識不對,不確定的東西最好還是動手試試,當然對于新應用,還是不建議用long,畢竟oracle已經廢棄它了。

          testClobLong.java

          posted on 2008-06-24 01:18 tacy lee 閱讀(461) 評論(0)  編輯  收藏 所屬分類: 性能相關數據庫

          主站蜘蛛池模板: 光山县| 资阳市| 库伦旗| 佛教| 大宁县| 武宁县| 芷江| 黎城县| 巧家县| 安达市| 繁昌县| 墨竹工卡县| 丰顺县| 西林县| 玛纳斯县| 扎赉特旗| 新邵县| 青田县| 嵩明县| 且末县| 景宁| 镇巴县| 思茅市| 孟州市| 于都县| 辽宁省| 湟源县| 丹江口市| 绥宁县| 永春县| 大厂| 遂平县| 杭锦后旗| 景谷| 周口市| 遂川县| 三门峡市| 荥阳市| 武定县| 武山县| 府谷县|