Foxtable(狐表)用户栏目专家坐堂 → 目录树加载时间很长,不知道原因出在哪里


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

主题:目录树加载时间很长,不知道原因出在哪里

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


加好友 发短信
等级:一尾狐 帖子:445 积分:4777 威望:0 精华:0 注册:2010/4/11 14:09:00
目录树加载时间很长,不知道原因出在哪里  发帖心情 Post By:2021/4/1 21:01:00 [只看该作者]

局域网内SQL数据库,数据量不是很大,加载的数据在150行左右,每次执行需要在15-20秒左右,不知道原因出在哪里。请大家指教,谢谢



Dim Filter As String 

Dim dr As DataRow = e.Node.DataRow

If e.Node.Text <> "点击加载数据......" Then

    Dim Year As Integer = e.Node.DataRow("")

    Dim Month As Integer = e.Node.DataRow("")

    Dim gb As String = e.Node.DataRow("出库单号")

    Select Case e.Node.Level

        Case 0

 

        Case 1

 

        Case 2

            Filter = "出库单号 = '" & gb & "'"

    End Select

End If

DataTables("出库明细").loadFilter = Filter

DataTables("出库明细").Load()


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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/1 21:14:00 [只看该作者]

调试看是哪里慢:http://www.foxtable.com/webhelp/topics/2226.htm

Dim st As Date = Date.Now

DataTables("出库明细").loadFilter = Filter

DataTables("出库明细").Load()

MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") '计算并显示执行代码所花费的秒数


直接到这里执行慢不慢?http://www.foxtable.com/webhelp/topics/1484.htm

select * from {出库明细} where 出库单号 = ‘放入具体单号’


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


加好友 发短信
等级:一尾狐 帖子:445 积分:4777 威望:0 精华:0 注册:2010/4/11 14:09:00
  发帖心情 Post By:2021/4/1 21:32:00 [只看该作者]

时间都花在最后这段代码

DataTables("出库明细").Load()   


select * from {出库明细} where 出库单号 = ‘放入具体单号’
直接这段代码秒结束

我的出库明细表没有事件代码

奇怪的是,在窗口设计时,用预览窗口时,DataTables("出库明细").Load()   这段代码执行不要一秒钟

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/1 21:37:00 [只看该作者]

那就是表事件,或者表达式列计算影响的。

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


加好友 发短信
等级:一尾狐 帖子:445 积分:4777 威望:0 精华:0 注册:2010/4/11 14:09:00
  发帖心情 Post By:2021/4/1 21:42:00 [只看该作者]

没有表事件

有7列表达式列

IsNull([件数],0) * IsNull([数量],0) * IsNull([单价],0)

类似于这样的表达式列,影响有这么大吗?

有没有其他改进的思路途径?

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/1 21:57:00 [只看该作者]

表达式列如果还有跨表计算,那么还要重算其它表的数据,极端情况下可能会导致所有依赖关联的表的表达式都重算一遍。http://www.foxtable.com/webhelp/topics/1935.htm

个人建议不要过多依赖表达式列,特别是要做动态加载的情况下。

可以考虑改为数据列,使用代码计算
[此贴子已经被作者于2021/4/1 21:57:11编辑过]

 回到顶部