Foxtable(狐表)用户栏目专家坐堂 → 内存不足要怎么释放?


  共有253人关注过本帖树形打印复制链接

主题:内存不足要怎么释放?

帅哥哟,离线,有人找我吗?
hitzfeld
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:537 积分:5272 威望:0 精华:0 注册:2017/9/1 23:28:00
内存不足要怎么释放?  发帖心情 Post By:2024/12/1 14:22:00 [只看该作者]

我有个检索表,由于是在单表中做复杂条件查询,所以使用SQLtable。之前数据量小都没问题,但是随着表越来越大,偶尔会出现内存不足的警告,然后崩溃。退出狐表后再进入就不会了。
目前主表的记录数大约15万条,每次检索出来符合条件的记录大约在5000条左右。由于该功能是高频率操作,在多次、快速操作检索之后就偶尔会出内存不足,然后系统崩溃。
1、se/ect没有使用*号,而是根据需要加载字段,20个字段。主表的字段有70个左右。
2、服务器的内存8G,子机的内存也是8G。都是7代以上的CPU,网络是千兆的。用户不多,访问这个主表的用户大致10人。

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20241201142118.png
图片点击可在新窗口打开查看


检索了一下论坛,看到蓝老师对于内存不足的一些解释,但是不是很明白,想请老师再解答一下更完整的解决方案,谢谢。
内存不足 - 专家坐堂 - Foxtable(狐表) - 新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
其中蓝老师说到“报表本身一般会释放内存,但是如果频繁的操作,可能还来不及释放。”似乎非常符合我碰到的情况,但是要怎么处理没有理解?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/1 19:48:00 [只看该作者]

不知道您的处理逻辑,也不知道到底使用了什么代码,没有办法给解决方案。请提供实例测试。

 回到顶部
帅哥哟,离线,有人找我吗?
hitzfeld
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:537 积分:5272 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2024/12/1 21:46:00 [只看该作者]

蓝老师好,我的SQLtable的加载代码也不复杂,就一个检索的集合。
Se/ect  [_Identify],工作单号,客户简称,品名,订单号,长,宽,高,数量,状态,材质,下单日期,库存数,已入库数量,已出库数量,交期,备注 From {产品汇总表} where 状态<> '已完成发货'  and 状态<> '已作废' and 状态<> '未审核'
但是这个检索是在产品汇总表(15万条记录)里面做全表检索,因为有些库存是几年前的,状态也不是固定的,所以每次加载这个SQLtable都必须要全表检索。
然后在系统使用的过程中一直都没有问题,直到超过10万条记录之后,客户报告了一次这个错误,我当时没在意,以为是极小概率偶发的,到了12万条,又报错,然后不到半个月14万条的时候,又报错,我才开始重视这个问题。
按道理,10多万条记录对SQL来说也不是什么大问题啊?过滤的结果也就5000条左右,我再服务器用查询的方法测试结果和狐表客户端结果是一致的。这么点数据会内存溢出真是没想到
[此贴子已经被作者于2024/12/1 21:56:50编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/1 21:55:00 [只看该作者]

如果只是这种不可能有问题的。再说了内存只和已加载的数据有关,不管数据库里有多少。我一个表几亿行,加载几千行,重复执行,内存的使用可以稳定在500M左右。

关键是加载前,加载后都做了什么处理,导致重新加载后之前加载使用的内存无法释放。


 回到顶部