Foxtable(狐表)用户栏目专家坐堂 → 加载外部数据表速度太慢是什么原因?


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

主题:加载外部数据表速度太慢是什么原因?

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


加好友 发短信
等级:幼狐 帖子:182 积分:1806 威望:0 精华:0 注册:2014/9/28 12:07:00
  发帖心情 Post By:2015/5/30 16:17:00 [只看该作者]

 执行 select * f rom {表A} 很快,但执行 select * f rom {表A}与执行DataTables.Load("表A")是不一样的,select * f rom {表A}只显示在SQL命令窗口,并且所有的表达式行都没有了。执行DataTables.Load("表A")会显示在foxtable中,并且所有的表达式行都有

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/30 16:19:00 [只看该作者]

那就是你的表达式列,和DataColChanged事件导致的速度慢

你在加载之前加入代码暂停事件运行,以及清空表达式列, 加载完毕再赋值回去
dim exp as string = DataTables("表A").DataCols("b列").Expression
DataTables("表A").DataCols("b列").Expression=""   
SystemReady = False
DataTables("表A").Load
SystemReady = 
True
DataTables("表A").DataCols("b列").Expression=exp
[此贴子已经被作者于2015/5/30 16:23:26编辑过]

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


加好友 发短信
等级:幼狐 帖子:182 积分:1806 威望:0 精华:0 注册:2014/9/28 12:07:00
  发帖心情 Post By:2015/5/30 16:45:00 [只看该作者]

 还是慢,不知道咋回事了,用DataTables.Load("表A")加载全部数据,同样有表达式列,为什么不慢?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/30 16:57:00 [只看该作者]

上例子吧

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


加好友 发短信
等级:幼狐 帖子:182 积分:1806 威望:0 精华:0 注册:2014/9/28 12:07:00
  发帖心情 Post By:2015/5/30 21:13:00 [只看该作者]

 谢谢您,问题已经解决了

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


加好友 发短信
等级:狐神 帖子:6848 积分:43334 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2015/5/30 21:37:00 [只看该作者]

以下是引用foxtable_New在2015/5/30 21:13:00的发言:
 谢谢您,问题已经解决了

与大家分享一下。


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


加好友 发短信
等级:幼狐 帖子:182 积分:1806 威望:0 精华:0 注册:2014/9/28 12:07:00
  发帖心情 Post By:2015/5/31 8:28:00 [只看该作者]

  用DataTables.Load("表A") 加载全部记录,耗时不到1秒;

用下面的方式加载同样多的记录
dim exp as string = DataTables("表A").DataCols("b列").Expression
DataTables("表A").DataCols("b列").Expression=""   
SystemReady = False
DataTables("表A").Load
SystemReady = 
True
DataTables("表A").DataCols("b列").Expression=exp
耗时12秒

用DataTables("表A").Load 加载同样多的记录耗时48秒


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


加好友 发短信
等级:幼狐 帖子:183 积分:1733 威望:0 精华:0 注册:2012/2/27 15:00:00
  发帖心情 Post By:2015/9/11 18:38:00 [只看该作者]

用DataTables.Load("表A") 加载全部记录,耗时不到1秒;

用下面的方式加载同样多的记录
dim exp as string = DataTables("表A").DataCols("b列").Expression
DataTables("表A").DataCols("b列").Expression=""   
SystemReady = False
DataTables("表A").Load
SystemReady = 
True
DataTables("表A").DataCols("b列").Expression=exp
耗时12秒

用DataTables("表A").Load 加载同样多的记录耗时48秒



这是什么原理?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/13 11:43:00 [只看该作者]

回复18楼。Load会先执行保存操作,也就是会检查是否要更新耗时。

 

你可以写,如 DataTables("表A").Load(False)


 回到顶部
总数 19 上一页 1 2