免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 7775 | 回复: 22
打印 上一主题 下一主题

请教如何将pb中的BLOB类型存到informix中!!! [复制链接]

charliedong 该用户已被删除
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-23 19:39 |只看该作者 |正序浏览
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
23 [报告]
发表于 2008-06-26 10:35 |只看该作者

:wink:

[ 本帖最后由 红蘑菇 于 2008-6-26 10:37 编辑 ]

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
22 [报告]
发表于 2008-04-29 16:32 |只看该作者

回复 #21 charliedong 的帖子

You can get IBM Informix Dynamic Server Administrator's Guide from
http://www-306.ibm.com/software/data/informix/pubs/library/
charliedong 该用户已被删除
21 [报告]
发表于 2008-04-29 16:07 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
charliedong 该用户已被删除
20 [报告]
发表于 2008-04-29 08:20 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
19 [报告]
发表于 2008-04-28 17:12 |只看该作者

回复 #18 charliedong 的帖子

-g <pagesize> 的意思是不是blob 的值要放几页呢?
这个应该是你想设置一页的大小是多少,具体存放BLOB值的空间大小应该是由<size> 这个值来具体确定的。比如这个空间想设置为1G,那么如果按BLOB一页4K大小,数据库一页4K大小的话,那么所有的对象存放应该是被存放到64000页中,而<size> 是说整个BLOB空间的大小被指定为1G
-o <offset> 这个值应该怎样去确定呢?如果设得不好,是不是会和以前的chunk 重叠?
关于这个设置需要看具体LV的设置,如果BLOB空间单独使用一个祼设备文件,偏移量可以设置为0,但是如果是和其他DBspace空间共用一个裸设备,就需要设置偏移量,比如一个裸设备为2G,已经被一个DBspace空间划去了1G,那么偏移量需要在1G的基础上再稍多一些,以免覆盖,可以设置成1050000之类的。
例如我执行如下语句:
informix@H80# onspaces -c -b blobdbs -g 4 -p /informix/chunk/blobdbs -o 0 -s 256000
这里已经创建一个祼设备文件大小为256M,已经创建链接路径为/informix/chunk/blobdbs,此裸设备分给BLOB空间单独使用,数据库页大小为4K,BLOB页大小为4K*4=16K
关于如何确定BLOB页大小,通常将最常出现的简单大对象的大小用作BLOB页的大小,如果一个表具有多个TEXT或BYTE列,并且各对象的大小并不接近,则将每个列存储在不同的 BLOB空间中,且每个列带有适当大小的BLOB页。

执行之后可以通过onstat -d看到如下信息:
address                  chk/dbs offset   size       free          bpages    flags     pathname
700000030e7edf0    8     7    0      64000     ~16000    16000      POB       /informix/chunk/blobdbs
其实际大小为64000*4K=256000K,即16000*16000=256000K

另外,informix中BLOB空间是用以存放TEXT与BYTE类型数据的,而没有BLOB类型。在新增加BLOB空间后不能马上进行储存,需要通过onmode -l 命令将数据库逻辑日志切换至下一个方可。

具体可以再看看《Informix Dynamic Server Administrator's Guide》中的相关介绍

[ 本帖最后由 lavanyy 于 2008-4-28 17:22 编辑 ]
charliedong 该用户已被删除
18 [报告]
发表于 2008-04-28 15:31 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
17 [报告]
发表于 2008-04-28 13:30 |只看该作者
你先执行onstat -d命令查看一下都有哪些dbspace空间建立了,如果有Blobspace空间的话应该有个加B标志的吧。命令应该是用onspaces,具体说明如下:
informix@H80# onspaces
Usage:
onspaces  
          { -c  { -b <BLOBspace> -g <pagesize>
                    -p <path> -o <offset> -s <size> [-m <path> <offset>] }
  -c  - Create a DBspace, BLOBspace, SBLOBspace or Extspace

  其中BLOBspace应该是BLOBspace的名称,<pagesize>是指定的BLOB页大小,根据onstat -b查看数据库页大小来决定该值,buffer size为数据库页大小的值。例如如果希望BLOB页大小为10K,而数据库页大小为2K,刚该参数值设置为5。 <path>是祼设备创建链接后的路径,<offset>是祼设备使用时开始的偏移量,<size>是设置大小,单位为K,-m是设置镜像的路径和偏移量。
charliedong 该用户已被删除
16 [报告]
发表于 2008-04-28 12:21 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
15 [报告]
发表于 2008-04-28 11:42 |只看该作者
是不是可以考虑先创建一个blobspace存储空间试试?
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP