以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 目录树加载时间很长,不知道原因出在哪里 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=161871) |
-- 作者:erdbeer -- 发布时间: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() |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2021/4/1 21:32:00 -- 时间都花在最后这段代码 select * from {出库明细} where 出库单号 = ‘放入具体单号’ 直接这段代码秒结束 我的出库明细表没有事件代码 奇怪的是,在窗口设计时,用预览窗口时,DataTables("出库明细").Load() 这段代码执行不要一秒钟
|
-- 作者:有点蓝 -- 发布时间:2021/4/1 21:37:00 -- 那就是表事件,或者表达式列计算影响的。 |
-- 作者:erdbeer -- 发布时间:2021/4/1 21:42:00 -- 没有表事件 有7列表达式列 IsNull([件数],0) * IsNull([数量],0) * IsNull([单价],0) 类似于这样的表达式列,影响有这么大吗? 有没有其他改进的思路途径?
|
-- 作者:有点蓝 -- 发布时间:2021/4/1 21:57:00 -- 表达式列如果还有跨表计算,那么还要重算其它表的数据,极端情况下可能会导致所有依赖关联的表的表达式都重算一遍。http://www.foxtable.com/webhelp/topics/1935.htm 个人建议不要过多依赖表达式列,特别是要做动态加载的情况下。 可以考虑改为数据列,使用代码计算
[此贴子已经被作者于2021/4/1 21:57:11编辑过]
|