informix和mysql数据量_informix数据库知识积累

三、informix中的某数据库temp空间不足,造成无法使用order by查询

场景:系统中某个查询是order by查询,点击“查询”,MyEclipse报错如下:

Hibernate:……(此处是打印的SQL)

2014-11-25 09:39:56 ERROR JDBCExceptionReporter:78 - Cannot write sorted rows.

2014-11-25 09:39:56 ERROR JDBCExceptionReporter:78 - ISAM error: no free disk space for sort

2014-11-25 09:39:56 ERROR BaseAction:76 - java.lang.reflect.InvocationTargetException

……

将打印的SQL语句放到informix数据库中执行,报错如下:

111e3ab017ff086f1a968f351ca6a737.png

(低版本的仅报错:Cannot write sorted rows)

以上错误仅对数据量很大的表有,对于数据量小的表不存在该错误。经验证,以上错误和用户的电脑内存无关,是数据库内存的问题。

select first n * from xxx order by xx;是先把表中所有数据order by,再first,所以当表数据量大时,这个查询很占内存。

出错原因:查询的该表的数据量较大,informix中的某数据库temp空间不足,造成无法使用order by查询

解决办法:设置该数据库,增大informix中该库的temp空间。在改例中,所查表的数据量是35万条,把改表所在库的temp内存增加到2G才可以进行带Where条件的排序查询,不带where的排序查询仍无法使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值