您的位置:首页 > 数据库 > Oracle

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

longphui 2015-09-01 17:16 148 查看

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的更好的读取方法,欢迎指正交流
标签: 
章节导航