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


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

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

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


加好友 发短信
等级:幼狐 帖子:182 积分:1806 威望:0 精华:0 注册:2014/9/28 12:07:00
加载外部数据表速度太慢是什么原因?  发帖心情 Post By:2015/5/30 15:18:00 [显示全部帖子]

  请教一个问题,用下面的代码加载一个具有8700行数据的sql 外部表"表A",该表作为外部数据表事先已添加到项目中,
执行下面的代码,
DataTables.Load("表A")
1秒钟不到就能加载完毕。
加上下面的代码后
 DataTables("表A").LoadFilter = "分厂 Like '%一厂%' and [日期] = '" & Date.Today & "'"
  DataTables("表A").Load()
要40秒钟才加载完毕,为什么加上条件后这么慢,有没有办法快一些?



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


加好友 发短信
等级:幼狐 帖子:182 积分:1806 威望:0 精华:0 注册:2014/9/28 12:07:00
  发帖心情 Post By:2015/5/30 15:55:00 [显示全部帖子]

 试过了
DataTables("表A").LoadFilter = ""
  DataTables("表A").Load()
仍然很慢,也要40秒左右,
试了几次,应该是 DataTables("表A").Load()这条语句造成的过慢,用DataTables.Load("表A")就很快

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


加好友 发短信
等级:幼狐 帖子:182 积分:1806 威望:0 精华:0 注册:2014/9/28 12:07:00
  发帖心情 Post By:2015/5/30 16:01:00 [显示全部帖子]

请问一下:DataTables("表A").Load() 和DataTables.Load("表A"),两条语有什么区别,因为用DataTables("表A").Load()加载表太慢,DataTables.Load("表A")不能设置加载条件?

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


加好友 发短信
等级:幼狐 帖子:182 积分:1806 威望:0 精华:0 注册:2014/9/28 12:07:00
  发帖心情 Post By:2015/5/30 16:04:00 [显示全部帖子]

 DataTables.Load("表A")和DataTables("表A").Load()都是加载所有数据,DataTables("表A").Load()很慢, DataTables.Load("表A")很快

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


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

 我觉得这是Foxtable 的共性问题,您也可以试一下,看看是不是和我说的一样

 回到顶部
帅哥哟,离线,有人找我吗?
foxtable_New
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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中,并且所有的表达式行都有

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


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

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

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


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

 谢谢您,问题已经解决了

 回到顶部
帅哥哟,离线,有人找我吗?
foxtable_New
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | 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秒


 回到顶部