问题:oracle long 与 clob;结果:long类型比clob到底差在什么地方?

long类型比clob到底差在什经常看到9i以上的文档,说以后
clob会逐步取代long,一直想不出,
而我在8.1.7上也测试2个字段好像
在存储上也看不出什么区别?么地方?

差别还是很大的,
比如:对于long的表a,不能create table b as select * from a;
但clob则可以..................

 

谢谢,版主。
对于long的用法的确比clob作出了很多的限制。
再问下版主,他们存储上有什么区别?

 

lob可以存储在单独的表空间上

 

long已经过时了,换成blob或clob吧
存储占用空间大,容易造成热点,一些操作在long上实现 不了...

 

一个表中只能有一个LONG,但可以有多个LOB我想这是主要区别吧

 

clob最长可以4G,long是2G

 

存储方式当然不同了,LONG是把值真正存在记录上的,而CLOB只是在记录上存一个指针。LONG值存在记录上,行链接和行迁移就是不可避免的,这种情况多了,很影响速度的。

 

当然,long及long raw类型相对于CLOB和BLOB来说有诸多限制,但也并不是一无是处,否则Oracle也不会在10g里还支持long及long raw

偶从开发的角度开看,要从服务器取得相同的数据,long raw是直接取回到客户端内存中,而BLOB需要先取回一个reference,然后用这个reference去服务器端取数据,也就是说BLOB需要比long raw多一倍的round trip。

另外,long raw可以用数组方式绑定,以批量形式取回客户端,而BLOB虽然也可以用数组方式绑定,不过批量形式取回客户端的是reference,还需要根据reference去服务器端一个一个地取数据。

正是因为上面两个原因,导致BLOB的性能与long raw 的性能有较大的差距。

这些结论是偶的一些感觉,并没有见到Oracle的官方文档,所以不保证正确性,仅供参考。

如果各位有针对blob的更好的读取方法,欢迎指正交流

posted @ 2015-09-01 17:16  longphui  Views(2629)  Comments(0Edit  收藏  举报