Foxtable(狐表)用户栏目专家坐堂 → 十万的数据加载半天 [已经初步解决]


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

主题:十万的数据加载半天 [已经初步解决]

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


加好友 发短信
等级:幼狐 帖子:150 积分:1619 威望:0 精华:0 注册:2012/2/10 9:26:00
十万的数据加载半天 [已经初步解决]  发帖心情 Post By:2014/5/15 20:34:00 [只看该作者]

如果用分页加载权限有很麻烦要写好几道的权限。

如果一次加载,多用几个表达式,一直出不来,要怎么办。真是郁闷啊,数据少的时候系统很不错,一多起来就要吐血了,sql2008的数据库。

难道是权限太复杂的原因,有没有什么可以解决的。

 

注:在登录按钮里面有大量的filter代码,表里面有大量的表达式列

 

清除所有表达式列公式,需要用的时候再重新加载表达式公式,虽然有点麻烦,但是加载速度提升N倍,从之前的直接打不开,到现在只需要三四分钟十万条数据,后期会进一步优化,并把解决方式公布在本帖。

 

感谢狐友的热心,提供各种方法,再次表示由衷感谢。谢谢你们

[此贴子已经被作者于2014-5-16 10:48:35编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/5/15 20:46:00 [只看该作者]

如果确定是表达式列的影响,可以先关闭表达式,加载完成再开启,参考:

http://www.foxtable.com/help/topics/1935.htm

 


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


加好友 发短信
等级:幼狐 帖子:150 积分:1619 威望:0 精华:0 注册:2012/2/10 9:26:00
  发帖心情 Post By:2014/5/15 20:47:00 [只看该作者]

 表达式是直接写在列里面的,如何关闭呢?

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


加好友 发短信
等级:幼狐 帖子:150 积分:1619 威望:0 精华:0 注册:2012/2/10 9:26:00
  发帖心情 Post By:2014/5/15 20:48:00 [只看该作者]

要写在哪个位置,后面怎么开启

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


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

以下是引用linshibin在2014-5-15 20:34:00的发言:

如果用分页加载权限有很麻烦要写好几道的权限。

如果一次加载,多用几个表达式,一直出不来,要怎么办。真是郁闷啊,数据少的时候系统很不错,一多起来就要吐血了,sql2008的数据库。

难道是权限太复杂的原因,有没有什么可以解决的。

 

注:在登录按钮里面有大量的filter代码,表里面有大量的表达式列

[此贴子已经被作者于2014-5-15 20:39:06编辑过]

不管怎么说,一次加载十万行的数据,思路可以调整。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/15 20:55:00 [只看该作者]

以下是引用linshibin在2014-5-15 20:48:00的发言:
要写在哪个位置,后面怎么开启

 

做个优化,把表达式列的表达式放到一张表里面。表里面有 表名、列名、表达式。

 

清空全部表达式列的表达式,然后在项目打开之后,比如登陆以后,把表达式设置进去

 

 http://www.foxtable.com/help/topics/1935.htm

 


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


加好友 发短信
等级:幼狐 帖子:150 积分:1619 威望:0 精华:0 注册:2012/2/10 9:26:00
  发帖心情 Post By:2014/5/15 20:55:00 [只看该作者]

工作上需要,即使不加载这么多,我后面也用菜单加一个load重新加载13年数据,结果程序直接卡死,半个小时数据还出不来,还吐血

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/5/15 21:38:00 [只看该作者]

例如:
 
DataTables("订单").DataCols("金额").Expression = ""
DataTables("订单").DataCols("单价").Expression = ""
DataTables("产品").DataCols("总金额").Expression = ""
加载数据
DataTables("订单").DataCols("单价").Expression = "Parent.单价"
DataTables("订单").DataCols("金额").Expression = "数量 * 单价 * (1 - 折扣)"
DataTables("产品").DataCols("总金额").Expression = "Sum(Child.金额)
 
 

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/15 21:47:00 [只看该作者]

以下是引用linshibin在2014-5-15 20:55:00的发言:
工作上需要,即使不加载这么多,我后面也用菜单加一个load重新加载13年数据,结果程序直接卡死,半个小时数据还出不来,还吐血

 

表达式重复计算了。你看楼上的帮助。

 

加载多数据,参考

 

1、清空表达式,加载完毕再重置;

 

2、暂停事件执行,加载完毕再开启 http://www.foxtable.com/help/topics/2218.htm

 

3、根据实际情况再优化处理


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


加好友 发短信
等级:幼狐 帖子:150 积分:1619 威望:0 精华:0 注册:2012/2/10 9:26:00
  发帖心情 Post By:2014/5/15 22:37:00 [只看该作者]

我是在登录窗口里面写的filter每个人加载不同的数据

在项目事件AfterOpenProject中:

Forms("用户登录").Open()
If _UserName = "" Then
    Syscmd.Project.Exit()
    Return '这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错
End If
 

这个代码我要放哪里呢


 回到顶部
总数 15 1 2 下一页