以文本方式查看主题

-  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有一些代码,还有窗口表中控件按钮里有查询的代码,其他地方没有代码了,代码如附件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:代码.txt



--  作者:有点蓝
--  发布时间: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功能把空表刚导入的数据更新到业务表里