以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 递归的效率问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101112) |
||||
-- 作者:aidimeng -- 发布时间:2017/5/25 9:45:00 -- 递归的效率问题
附件中有自定义函数,名称递归 数据少的时候计算还可以,现在的数据有3000多,计算一次大约要三分钟。 曾经尝试改用循环,但总是有这样那样的问题。 求助各位 有没有好的办法来解决这个效率低的问题啊
之前的帖子 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=99356&replyID=&skin=1 [此贴子已经被作者于2017/5/25 9:46:20编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2017/5/25 10:36:00 -- 几千行的数据就全部加载进来处理吧,没有必要使用sqlfind、sqlselect这种用法,加载后使用find和lselect |
||||
-- 作者:有点色 -- 发布时间:2017/5/25 10:50:00 -- sqlfind、sqlselect这样的效率太低,触发太多的时候,不要那样用。 |
||||
-- 作者:aidimeng -- 发布时间:2017/5/25 12:18:00 -- 在正式的程序中我用的sql来完成的,但速度很慢 |
||||
-- 作者:有点色 -- 发布时间:2017/5/25 12:53:00 -- 以下是引用aidimeng在2017/5/25 12:18:00的发言:
在正式的程序中我用的sql来完成的,但速度很慢
用sql就是会慢。你应该先把表数据全部加载出来,再用 find 和 select,不能用sqlfind和sqlselect |
||||
-- 作者:aidimeng -- 发布时间:2017/5/25 13:11:00 -- 关于加载我在看看,但我一直顾虑的是 影响程序的快慢是不是与递归的次数有关系啊 3000人 递归的次数很可观了 |
||||
-- 作者:有点色 -- 发布时间:2017/5/25 15:34:00 -- 汗,终于理清了你的逻辑。你计算一行,不就可以得到全部行的数据了?只需要递归第一个的值就行了。参考
|
||||
-- 作者:aidimeng -- 发布时间:2017/5/25 21:59:00 -- 超级感谢,亲下 |