我与Informix数据库建立了ODBC连接。在对db执行负载测试时,它会在~12K插入查询后给出“没有足够的空间用于解析器堆栈”的错误。控制流程为:
因此,为每个查询分配一个新的语句句柄,同时所有查询都在同一个连接上执行。确切的错误陈述是:
37000:[Informix][Informix ODBC Driver]General error. Not enough space for parser stacks
这是一个已知错误吗?我也无法找到任何内存泄漏。在大量“插入”查询之后,增加堆栈的大小可能最终导致相同的问题。有什么建议吗?
答案 0 :(得分:1)
您是否使用各种~12K不同的插入语句加载数据库?
如果没有,那么您不需要执行所有API调用。而是重复步骤2到8,对于相同的INSERT
语句,您可以重复步骤4,5和6.这样,每个表都有一个PreparedStatement。不要为要插入的每一行创建PreparedStatament。我认为如果你改变你的加载程序以这种方式工作,错误可能会消失。
此外,您还可以向我们展示您的ClientSDK版本,并告诉我们有关您的操作系统和环境的更多信息。