我与Informix数据库建立了ODBC连接。在对db进行负载测试时,它在~12K insert查询后给出了一个错误“为解析器堆栈提供了不够的空间”。控制流程是:
G 217
因此,为每个查询分配一个新的语句句柄,同时在同一连接上执行所有查询。准确的错误声明是:
37000:[Informix][Informix ODBC Driver]General error. Not enough space for parser stacks这是已知的错误吗?我也找不到任何内存泄漏。在大量的“插入”查询之后,增加堆栈的大小可能会导致同样的问题。有什么建议吗?
发布于 2012-03-15 08:15:04
您是否用不同的~12K不同的insert语句加载数据库?
如果没有,则不需要执行所有的API调用。相反,对于相同的INSERT语句,可以重复步骤2至8,可以重复步骤4、5和6。这样,每个表就有一个PreparedStatement。不要为要插入的每一行创建PreparedStatament。我认为,如果您将加载程序更改为这种方式,错误可能会消失。
此外,您还可以向我们展示您的ClientSDK版本,并告诉我们更多关于您的操作系统和环境的信息。
https://stackoverflow.com/questions/9698402
复制相似问题