免费注册 查看新帖 |

Chinaunix

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

分段表中的rowids的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-26 10:35 |只看该作者 |倒序浏览
各位侠客爷:本人有两个问题,
1、informix中说对于分段表默认建表时将不会生成rowids,若一定要用到rowdis则可加上"with rowids"语句,informix要求对于轮流分段的表的索引不要放在分段中而要将其单独放在另外一个dbspaces中,而实际上表的rowids应该可以算作类似于索引的一种东西,这可从“oncheck -cI”中的结果看出rowids亦被列在索引之列,并被置于各分段中了,这是否相当于将索引置于分段之中了?与informix的要求相背,本人在进行库查询时经常有I/O错误(磁盘物理上并无坏道),并且online.log中提示要求进行"oncheck -cDI"操作,不知这与上述的建表时的“with rowids”是否有关?
2、本人为何要用到rowids呢?由于本人经常用到isql中的form,似乎isql中的form必须要用到rowids,因此即使本人不想用rowids也得用。不知是否有其他办法让isql的form避开rowids也可查询吗?本人使用的是informix7.31UD4.

论坛徽章:
0
2 [报告]
发表于 2005-03-29 11:37 |只看该作者

分段表中的rowids的问题

高手们都上哪儿去了?同志们怎么只看不发言呢?

论坛徽章:
0
3 [报告]
发表于 2005-03-29 15:11 |只看该作者

分段表中的rowids的问题

1、索引的分段和rowid没关系,rowid不等于索引,不能因为oncheck --cI中有索引就认为rowid是索引。I/O错误和rowid没有直接关系。
2、我觉得isql中的form的查询和一般的SQL查询没有什么区别,如果不是在SQL显示使用rowid,Informix对rowid的使用对用户来说应该是透明的,就是说你控制不了,也没有必要控制。

论坛徽章:
0
4 [报告]
发表于 2005-03-30 13:23 |只看该作者

分段表中的rowids的问题

楼上的可能没明白我的意思,由于本人经常用到form,我的问题是如果要使用form,则是否我的表中一定要有rowid,如果没有rowid,则我就无法使用form(据我的测试,informix的报错好像就是此意)?
第二,由于我的表作了轮流分段,因此由于前面所述的缘由,我在建表时使用了with rowids语句,这会导致查询的频频出错吗?理论上应该不会,但事实上却是导致了许多错误,并提示要求进行oncheck,这是为何?

论坛徽章:
0
5 [报告]
发表于 2005-03-30 15:14 |只看该作者

分段表中的rowids的问题

1、rowid是个隐藏列,对应未分段的表都有这个字段,和你用不用form没关系。
2、不知道你对分段表加rowid的需求是什么,建议不用加了。但是rowid的使用和你说的查询出错没有直接关系。
3、系统提示你做oncheck检查,那就做一做,看看是什么结果,也许是数据或索引有损坏。

论坛徽章:
0
6 [报告]
发表于 2005-03-30 16:50 |只看该作者

分段表中的rowids的问题

楼上的所谓:“2、不知道你对分段表加rowid的需求是什么,建议不用加了。”本人由于要用form查询数据,具体过程如下:
1:用isql建立如tmp.per:  isql->;form->;generate->;tmp->;table-selection-complete.
2:用isql运行如tmp.per:  isql->;from->;run->;tmp.
3:然后informix就报错说你没有rowids(这是在表分段没有用with rowids语句时的情况)
之后我就重新用with rowids建表,再之后仍然如上之1,2运行我的form,然后informix就不会报错,一切运行正常。
因此我才会在第一发贴中提到:“不知是否有其他办法让isql的form避开rowids也可查询吗?”不知楼上的现在明白了没有?
谢谢zzjijun参与本话题!!

论坛徽章:
0
7 [报告]
发表于 2005-03-31 11:02 |只看该作者

分段表中的rowids的问题

这样的话,难道isql->;form确实要用到rowid,可惜我这里没有环境可以测试。
还可以这样测试一下:
1、在form中输入某些条件查询,比如在索引字段,这个我觉得应该不会用到rowid的。
如果还要使用rowid,那我确实不知道还有什么办法让isql的form避开rowid。

2、另外I/O错误和建表时的“with rowids”应该没有直接关系。

论坛徽章:
0
8 [报告]
发表于 2005-03-31 17:26 |只看该作者

分段表中的rowids的问题

不行啊楼上的,我试过了,他一定要rowids, err都是857,这样看来informix 自带的form工具必须要有rowids.
至于io错误现已没有了,这应该是informix的bug。
至于我为什么会把rowid和索引联系在一起呢,那是由于我几次建索引时都忘了写"in 某某dbs"了,造成她把索引建在了分割表中,因此他在建索引时就报类似的io错,而且与我后来查询时的一样都没什么规律,都是:“KAIO:error in kaio_read(要不就是kaio_write), .....err=14".因此我才会怀疑是否由于rowid落在分割表中了(类似于上面的索引建在分割表中一样)才导致此错误。
嘿,这儿怎么就咱俩在这儿讨论,高手都上哪儿了?版主怎么也不参与一下?

论坛徽章:
0
9 [报告]
发表于 2005-04-04 10:39 |只看该作者

分段表中的rowids的问题

我这篇发贴能算得上精华吗?要算的上精华有什么要求呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP