Foxtable(狐表)用户栏目专家坐堂 → 有效率高的加载数据命令吗?


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

主题:有效率高的加载数据命令吗?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/23 11:27:00 [只看该作者]

把你的事件代码屏蔽一下吧。全局表事件看看有没有代码。

 

SystemReady = False 有可能不生效。

 

或则,在你的项目里新增一个表,引用那个外部表,然后测试Load看看


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


加好友 发短信
等级:小狐 帖子:371 积分:4368 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2017/3/23 23:36:00 [只看该作者]

经测试,把与订单明细表有关联的其他表达式列也屏蔽的话,全部数据加载约为27秒。
证明,有关联的其他表的列表达式也会影响加载效率

下面是关闭其他表的表达式语句

DataTables("产品信息表").DataCols("订单数量").Expression = ""
DataTables("订单主表").DataCols("总金额").Expression = ""
DataTables("出库明细表").DataCols("订单数量").Expression = ""
DataTables("出库明细表").DataCols("已送数量").Expression = ""

但是,与直接加载没有关联,没表达表的数据表所需时间0.2秒相比,还是大大超过。
[此贴子已经被作者于2017/3/23 23:37:51编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/23 23:56:00 [只看该作者]

在你的项目那里,添加引用外部表 aaa,然后引用那个问题表,然后加载这个aaa测试。

 

肯定是你代码或者设置影响到了。


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


加好友 发短信
等级:小狐 帖子:371 积分:4368 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2017/3/24 22:02:00 [只看该作者]

测试1  引用外部表aaa:
1.把原订单明细表名改为:订单明细表1
2.增加外部表:订单明细表,不加任何关系式列。
3.还是用原加载订单明细表代码,加载时间为0.2秒。

测试2  屏蔽表事件
1、屏蔽事表件
2、屏蔽关系列表达式
3、还是用原加载订单明细表代码,加载时间为60秒

systemready = false
DataTables("订单明细表").StopRedraw
DataTables("订单明细表").DataCols("品名").Expression = ""   '屏蔽所有表达式列
DataTables("订单明细表").LoadFilter = ""
DataTables("订单明细表").Load
DataTables("订单明细表").ResumeRedraw
systemready = True
 

图片点击可在新窗口打开查看此主题相关图片如下:订单明细结构.jpg
图片点击可在新窗口打开查看
在实际加载代码中,已把上面的所有表达列屏蔽

[此贴子已经被作者于2017/3/24 22:03:49编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106569 积分:542016 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/24 22:09:00 [只看该作者]

上实例测试 

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


加好友 发短信
等级:小狐 帖子:371 积分:4368 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2017/3/24 22:17:00 [只看该作者]

好多数据啊,我看下能否删除些
[此贴子已经被作者于2017/3/24 22:18:03编辑过]

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


加好友 发短信
等级:小狐 帖子:371 积分:4368 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2017/3/25 15:11:00 [只看该作者]

附件为项目数据,已删除无关代码,只保留原项目的关联,表达式列。
用以下代码测试加载数据,时间还需25秒

Dim Filter,p,s,fl As String
Dim d,td As Date
Dim t1,t2,t3,t4 As Date
Dim tp1,tp2,tp3 As TimeSpan
t1 = Date.Now

Dim dt1 As Date = Date.Today.AddDays(-183)  '半年内录入的订单
'Dim Filter As String
'Filter = "录入日期 >= #" & dt1 & "#"

systemready = False
DataTables("订单明细表").StopRedraw
DataTables("订单明细表").DataCols("订单客户").Expression = ""
DataTables("订单明细表").DataCols("用料规格").Expression = ""
DataTables("订单明细表").DataCols("型号规格").Expression = ""
DataTables("订单明细表").DataCols("已交数量").Expression = ""
DataTables("订单明细表").DataCols("是否核销").Expression = ""
DataTables("订单明细表").DataCols("未交数量").Expression = ""
DataTables("订单明细表").DataCols("订单交期").Expression = ""
DataTables("订单明细表").DataCols("金额").Expression = ""
DataTables("订单明细表").DataCols("常用客户").Expression = ""
DataTables("订单明细表").DataCols("单位").Expression = ""
DataTables("订单明细表").DataCols("品名").Expression = ""

DataTables("产品信息表").DataCols("订单数量").Expression = ""
DataTables("订单主表").DataCols("总金额").Expression = ""
DataTables("出库明细表").DataCols("订单数量").Expression = ""
DataTables("出库明细表").DataCols("已送数量").Expression = ""

t2 = Date.Now
tp1 = t2 - t1

DataTables("订单明细表").LoadFilter = Filter
DataTables("订单明细表").Load


t3 = Date.Now
'DataTables("订单明细表").DataCols("订单客户").Expression = "Parent(订单明细).订单客户"
'DataTables("订单明细表").DataCols("用料规格").Expression = "Parent(产品信息).用料规格"
'DataTables("订单明细表").DataCols("型号规格").Expression = "Parent(产品信息).用料规格"
'DataTables("订单明细表").DataCols("已交数量").Expression = "IsNull(Sum(Child(订单_出库).实交数量),0)"
'DataTables("订单明细表").DataCols("是否核销").Expression = "Parent(订单明细).是否核销"
'DataTables("订单明细表").DataCols("未交数量").Expression = "[订单数量] - [已交数量]"
'DataTables("订单明细表").DataCols("订单交期").Expression = "Parent(订单明细).订单交期"
'DataTables("订单明细表").DataCols("金额").Expression = "[订单数量] * [单价]"
'DataTables("订单明细表").DataCols("常用客户").Expression = "Parent(订单明细).常用客户"
'DataTables("订单明细表").DataCols("单位").Expression = "Parent(产品信息).单位"
'DataTables("订单明细表").DataCols("品名").Expression = "Parent(产品信息).备注2"



DataTables("订单明细表").ResumeRedraw
systemready = True
t4 = Date.Now
tp2= t3-t2
MessageBox.Show("本次设置用时:" &  tp1.TotalSeconds() &  "秒. 数据加载用时:" & tp2.TotalSeconds() & "秒")
MessageBox.Show("共加载订单明细表记录数:" & Tables("订单明细表").Rows.Count)




[此贴子已经被作者于2017/4/13 11:19:43编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106569 积分:542016 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/25 15:51:00 [只看该作者]

初步测试还是关联表和表达式的原因,全部删除关联就快了

 回到顶部
帅哥,在线噢!
有点蓝
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106569 积分:542016 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/25 15:53:00 [只看该作者]

所有和这个订单明细表有关的表达式都去掉

 回到顶部
帅哥哟,离线,有人找我吗?
明天的灵
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:371 积分:4368 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2017/3/25 16:27:00 [只看该作者]

是的,本身数据没问题。
但是,不是已把表达式屏蔽了吗?

 回到顶部
总数 22 上一页 1 2 3 下一页