以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 保存太慢 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192605) |
-- 作者:nuoyan89 -- 发布时间:2024/7/4 13:40:00 -- 保存太慢 老师,我有个窗口表,数据有个11万行,每次点击保存的时候基本上就不动了,像死机了一样。代码如下,是写在控件按钮上的。 DataTables("产品").Save()
|
-- 作者:有点蓝 -- 发布时间:2024/7/4 13:47:00 -- 和保存有关的表事件有没有什么代码? |
-- 作者:nuoyan89 -- 发布时间:2024/7/4 14:03:00 -- 就在窗口表中ITEMCLICK/afterload有一些代码,还有窗口表中控件按钮里有查询的代码,其他地方没有代码了,代码如附件 |
-- 作者:有点蓝 -- 发布时间:2024/7/4 14:14:00 -- 这些都是窗口事件。窗口表事件、全局表事件有没有什么代码? |
-- 作者:nuoyan89 -- 发布时间:2024/7/4 14:18:00 -- 窗口表中的全局事件没有任何代码,项目的全局事件也没有代码 |
-- 作者:有点蓝 -- 发布时间:2024/7/4 14:25:00 -- 11万行全部都是改过数据的,全部都要保存?还是说11万行只是其中几行的数据被改过? |
-- 作者:nuoyan89 -- 发布时间:2024/7/4 14:31:00 -- 11万行是全部改过数据的,全部都要保存,因为是做的成本分配 |
-- 作者:有点蓝 -- 发布时间:2024/7/4 14:40:00 -- 这种就没有办法了,这么多数据保存肯定是需要时间的。如果是远程数据库,考虑到带宽等原因会更慢。或者考虑分批进行处理,处理一部分就保存一部分 |
-- 作者:nuoyan89 -- 发布时间:2024/7/4 14:52:00 -- 我现在就是处理一部分保存一部分,保存慢就算了,保存了一晚上还没有保存完 |
-- 作者:有点蓝 -- 发布时间:2024/7/4 15:11:00 -- 看看任务管理器,如果程序的CPU使用率还在变化,说明还在保存,可能是网络等原因。如果没有变化,说明程序已经卡死了。 如果这些数据都是新增的可以换种方式保存:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=147288 如果不是新增,换个思路也可以处理,就是在数据库提供一个临时空表,先使用sqlBulkCopy把数据全部导入空表,然后使用sql的update功能把空表刚导入的数据更新到业务表里 |