- 我的系统**
- 数据库版本:6.1.0
- 数据库名称:赛贝斯
- 节点. js版本:12.18.3
- node-odbc软件包版本:2.4.1
- 操作系统:Windows 10 Pro
"虫子"
多次启动包含大量数据的同一查询odbc数据包会向我返回以下错误"[odbc]提取数据时分配或重新分配内存时出错。没有可用的ODBC错误信息"。堆会被每个查询填满,尽管结果已返回到服务响应并且变量已清除。请尝试使用参数运行查询(cursor = true)并且关闭游标而不提取数据也没有问题。当我在表上有longvarchar字段时也会出现同样的问题。虽然我关闭了连接,但数据库仍然显示它们是打开的。
Connection odbc
- 预期行为**
我不明白为什么查询是一个接一个地执行的,但是系统内存不足。运行一次查询不会导致问题。
- 为了繁衍**
准备包含22个字段(2个varchar(32767))和5633条记录的表。通过按下打开连接的键调用服务15次,对表执行SELECT查询,关闭连接并返回结果。
1条答案
按热度按时间dy2hfwbg1#
我们有同样的问题。
如果我们谈论的是相同的项目⇒ https://github.com/markdirish/node-odbc
这是一个已知问题,与
SELECT
查询表https://github.com/markdirish/node-odbc/issues/304期间的内存泄漏有关似乎出现在多个驱动程序上,如:
SQLite
、HFSQL
等等。内存不处理释放数据,至少你得到了内存堆限制到你的程序,导致它退出。
合并请求将解决此问题⇒ https://github.com/markdirish/node-odbc/pull/306
如果您需要使用此解决方案读取数据,我可以建议一个替代解决方案,待定解决方案...
https://github.com/wankdanker/node-odbc
有点难以启动,但工程就像一个魅力之后。