以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- Laod加载表数据变慢问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=151292) |
-- 作者:z769036165 -- 发布时间:2020/6/19 16:44:00 -- Laod加载表数据变慢问题 情况: 表A存在10万行数据,全部加载后 在另外的窗口中 存在表B和表C。其中表C与表B的某项关联 设置点击表B行时动态Load加载对应的表C项(数据不多,1~20行左右) 问题: 在表A加载10万时,窗口中点击表B行,load加载表C项变慢了,而且卡顿,点窗口的其他功能也都卡顿 在不在加载表A时,窗口中点击表B行,load加载表C非常快,不卡顿 请问这是什么情况?这表A与表B与表C没任何关系,表A表事件中无任何代码,表B与表C中,只有表B有一行绘制,其他事件代码都没有。 |
-- 作者:有点蓝 -- 发布时间:2020/6/19 16:50:00 -- 加载数据是在主线程的,加载过程中会影响整个foxtable程序的运行 |
-- 作者:z769036165 -- 发布时间:2020/6/19 16:55:00 -- 我说的情况是加载全部完成后,只是纯粹的表中存在10万行数据时,其他表的load加载就变慢 [此贴子已经被作者于2020/6/19 16:56:14编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/6/19 17:01:00 -- 表B、表C是不是有表达式列,或者是表事件和表A的数据关联? |
-- 作者:z769036165 -- 发布时间:2020/6/19 17:02:00 -- 我测试了下 Dim st As Date = Date.Now DataTables("表C").LoadFilter = "编号 = \'A1\'" DataTables("表C").Load MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") 在表A存在10万行数据时,显示耗时0.4418689s 在表A不存在行数据时,显示耗时0.0388956s 差了将近10倍 |
-- 作者:z769036165 -- 发布时间:2020/6/19 17:03:00 -- 没有任何关联,表事件都特意看了,都没有,就是从sql数据库加载过来的表,没有表达式列 |
-- 作者:有点蓝 -- 发布时间:2020/6/19 17:08:00 -- 数据多肯定会对数据库的使用有影响。不管什么数据库都一样 |
-- 作者:z769036165 -- 发布时间:2020/6/19 17:12:00 -- 这个是load加载进狐表中,而且之前的表都加载完了,在狐表中不加载这么多行数据,就很快,这个应该和数据库影响没关系吧,我用新创建的项目测试,发现也是这样 |
-- 作者:z769036165 -- 发布时间:2020/6/19 17:14:00 -- 就是在新项目中加载一个外部sql数据中10万行的表, 然后在新项目的内部表进行load加载,就变慢10倍以上,这个表和外部表都没点关系啊
|
-- 作者:有点蓝 -- 发布时间:2020/6/19 17:19:00 -- 数据加载后都放在内置的数据库里,所有表格已经加载的数据都在一个内置的数据库里。内置的数据库是一个access数据库,数据越多对项目肯定有效越大,不是非常必要不建议一次加载这么多数据,按需加载,或者分页加载 |