oracle 的lob & long

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

          首先創(chuàng)建兩個(gè)測試表:

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

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

          做一個(gè)簡單查詢對(duì)比一下:

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

          統(tǒng)計(jì)信息
          ----------------------------------------------------------
                  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;

          統(tǒng)計(jì)信息
          ----------------------------------------------------------
                  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

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

          測試下來,看來之前的認(rèn)識(shí)不對(duì),不確定的東西最好還是動(dòng)手試試,當(dāng)然對(duì)于新應(yīng)用,還是不建議用long,畢竟oracle已經(jīng)廢棄它了。

          testClobLong.java

          posted on 2008-06-24 01:18 tacy lee 閱讀(457) 評(píng)論(0)  編輯  收藏 所屬分類: 性能相關(guān)數(shù)據(jù)庫

          主站蜘蛛池模板: 沐川县| 衡山县| 泸水县| 独山县| 通道| 正阳县| 平谷区| 河曲县| 汝州市| 康乐县| 元朗区| 青河县| 军事| 阳原县| 德令哈市| 正宁县| 新宾| 阳山县| 上虞市| 肃宁县| 波密县| 邵东县| 和林格尔县| 资源县| 奉化市| 阿坝| 郯城县| 南京市| 正安县| 宁晋县| 鹤山市| 和政县| 大城县| 北安市| 昌乐县| 文山县| 石泉县| 肃北| 灵川县| 田林县| 延津县|