Foxtable(狐表)用户栏目专家坐堂 → [求助]combine的问题


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

主题:[求助]combine的问题

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


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

只有数据库,项目呢?如何测试?

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


加好友 发短信
等级:九尾狐 帖子:2186 积分:17954 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/6/22 0:32:00 [只看该作者]

直接执行SQL都非常慢啊
本来是想把这个SQL直接贴到项目里的,后来一看不行啊


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


加好友 发短信
等级:九尾狐 帖子:2186 积分:17954 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/6/22 0:34:00 [只看该作者]

也请教过专业人士,他的建议是:光用这个SQL可能是效率很低的,要结合数据库、客户端分担计算,否则很可能导致宕机


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


加好友 发短信
等级:九尾狐 帖子:2186 积分:17954 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/6/22 0:37:00 [只看该作者]

我现在的做法是,在FT中执行,通过TbModD中的WLID集合,找到它们在TbWL表中的WBSID的集合,然后再去WBS表中,找到这些WBSID的上级节点。
这样实际执行下来,7000行数据,测试用时3秒左右。

但如果直接在ACEESS中执行SQL,别说3秒了,300秒也搞不定。
dim a as list(of string) = datatables("TbModD").getvalues("WLID")

dim b as list(of string)
for each ai as string in a  
   dim dr as datarow = datatables("TbWL").find("ID = '" & ai & "'")
      if dr isnot nothing then 
          dim r as datarow  = datatables("TbWBS").find("ID = '" & dr("WBSID") & "'")
                if r isnot nothing andalso b.contains(r("C")) then 
                  b.add(r("C"))
               end if 
      end if 
next
这样,就得到了诸如1.4.5.6,1.2.3.4这样的集合,然后去分解得到1,1.4,1.4.5,1.4.5.6,1.2,1.2.3,1.2.3.4……这样的上级节点。
再就可以在TbWBS中找到它们对应的ID了
[此贴子已经被作者于2018/6/22 8:53:21编辑过]

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


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

以下是引用chnfo在2018/6/22 0:34:00的发言:
也请教过专业人士,他的建议是:光用这个SQL可能是效率很低的,要结合数据库、客户端分担计算,否则很可能导致宕机

 

你执行什么sql语句导致的效率低?单独一句sql语句?

 

access、sqlserver,都可以写方法或者存储过程的吧?复杂的逻辑,是不能通过一句sql语句解决的(但大部分可以),你要在数据里面写代码处理才行。


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


加好友 发短信
等级:九尾狐 帖子:2186 积分:17954 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/6/22 11:25:00 [只看该作者]

本来是想直接用一个简单的like来解决问题。就是ACCESS里的查询来解决问题。想想还是不行

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


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

以下是引用chnfo在2018/6/22 11:25:00的发言:
本来是想直接用一个简单的like来解决问题。就是ACCESS里的查询来解决问题。想想还是不行

 

肯定不行。越简单的语句,执行效率往往越差。优化代码基本都要增加代码量。


 回到顶部
总数 17 上一页 1 2