sybase iq数据库 insert into select 数据量大时报错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sybase iq数据库 insert into select 数据量大时报错相关的知识,希望对你有一定的参考价值。

insert into t1 ( a,b,c) select a,b,c from t2

当表t2里的数据就5000条时,能正常执行,但当t2里的数据达到几万条时,报错。
请问有没有什么好的解决办法。
请问用存储过程的话 怎么解决 谢谢了

你这个情况主要是缓存不够,所以用存储过程的话那还是一个样子的;解决的方法要么是分批导,要么是估计是要配置一下数据库服务器的内存,把数据库服务器关于缓存这块的内存分配的大些估计可以,数据库服务器里的一些参数也应该优化一下。 参考技术A 一般来说不是“缓存”的事儿,而是“日志空间不足”,执行一个事务,需要一定的日志空间,以保证做到90%以上后,还能取消(一说“回滚”)。
方法倒是楼上所述,一是分批(准确说法当是“拆小事务”),二是扩容(增大日志空间,当然了,内存多一些也只有好处)
还有一种复杂方案,采用记录日志很少的操作来完成,工具是iq_bcp,语法比较复杂,得好好查阅手册,load table命令亦可。
参考技术B 居然是查不出来,缓存太小了。

以上是关于sybase iq数据库 insert into select 数据量大时报错的主要内容,如果未能解决你的问题,请参考以下文章

linux中执行crontab定时任务时无法连接sybase iq15.1数据库,shell脚本中的sybase iq的环境变量怎么设置

Sybase IQ 12.7 isql命令疑问?

Sybase中的load table的用法

PreparedStatement 不适用于 Java 中的 Sybase IQ

Sybase IQ-15_1本地登录问题之interfaces文件配置及数据文件权限

Hibernate + Sybase Iq