首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ODBC连接查询Informix数据库时,解析器堆栈已满

使用ODBC连接查询Informix数据库时,解析器堆栈已满
EN

Stack Overflow用户
提问于 2012-03-14 08:42:31
回答 1查看 2.2K关注 0票数 2

我与Informix数据库建立了ODBC连接。在对db进行负载测试时,它在~12K insert查询后给出了一个错误“为解析器堆栈提供了不够的空间”。控制流程是:

  • SQLSetStmtAttr

  • SQLBindParameter

  • SQLConnect

  • SQLAllocStmt

  • SQLPrepare

  • SQLExecute

  • SQLFreeStmt

  • Repeat步骤2至7

G 217

因此,为每个查询分配一个新的语句句柄,同时在同一连接上执行所有查询。准确的错误声明是:

代码语言:javascript
复制
37000:[Informix][Informix ODBC Driver]General error. Not enough space for parser stacks

这是已知的错误吗?我也找不到任何内存泄漏。在大量的“插入”查询之后,增加堆栈的大小可能会导致同样的问题。有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2012-03-15 08:15:04

您是否用不同的~12K不同的insert语句加载数据库?

如果没有,则不需要执行所有的API调用。相反,对于相同的INSERT语句,可以重复步骤2至8,可以重复步骤4、5和6。这样,每个表就有一个PreparedStatement。不要为要插入的每一行创建PreparedStatament。我认为,如果您将加载程序更改为这种方式,错误可能会消失。

此外,您还可以向我们展示您的ClientSDK版本,并告诉我们更多关于您的操作系统和环境的信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9698402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档