Foxtable(狐表)用户栏目专家坐堂 → GetValues


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

主题:GetValues

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


加好友 发短信
等级:超级版主 帖子:107846 积分:548581 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/15 16:23:00 [只看该作者]

又测试了一遍,使用10000行数据测试,getvalue要150秒左右,select要430秒左右

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


加好友 发短信
等级:狐神 帖子:5055 积分:13047 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2021/7/15 18:35:00 [只看该作者]

刚才有测试了以下,出鬼了,又如您所说的一样了,像这种要求,如何优化代码?

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


加好友 发短信
等级:狐神 帖子:5055 积分:13047 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2021/7/15 19:07:00 [只看该作者]

之前我测试了多次,而且还显示了每个集合的数量,只要0.几秒,怎么现在就不行了?

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


加好友 发短信
等级:狐神 帖子:5055 积分:13047 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2021/7/15 19:10:00 [只看该作者]

10000000000000000000000000000000000000000000000000000000%有问题?

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


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

几万行数据循环就要,调用几万次getvalues或者select,也就这样了。

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


加好友 发短信
等级:狐神 帖子:5055 积分:13047 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2021/7/15 20:29:00 [只看该作者]

有史以来最好玩的最大的bug!!!!!!!!!!!
无意中发现的,劳驾首先在窗口中执行如下代码,只要0.几秒,然后再执行上面的代码,同样也只要0.几秒。
如果两段代码放在一起,只要1秒。
Dim Dic As new Dictionary(of DataRow, Integer)
Dim v As Double
For Each
dr As DataRow In DataTables("表A").DataRows
    v = DataTables("表A").Compute("Count(第二列 )", "第二列 = " & dr("第一列"))
    dic
.Add(dr, v
)
Next




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


加好友 发短信
等级:狐神 帖子:5055 积分:13047 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2021/7/15 20:34:00 [只看该作者]

应该是一个从内存获得,方法有默认来源!

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


加好友 发短信
等级:狐神 帖子:5055 积分:13047 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2021/7/15 20:48:00 [只看该作者]

或者两个方法混了,SQLGetValues,SQLSelect

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


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

请上传实例说明

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


加好友 发短信
等级:狐神 帖子:5055 积分:13047 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2021/7/15 21:40:00 [只看该作者]

也就是说,加上红字的代码后执行,20000行,只要1秒就行了。


Dim st As Date = Date.Now



Dim v As Double
For Each 
dr As DataRow In DataTables("dtpzzb").DataRows
    v = DataTables("
dtpzzb").Compute("Count(pzzb142)""pzzb142 = " & dr("pzzb142"))
    

Next



Dim Dic As new Dictionary(of DataRow,String)


For Each dr As DataRow In DataTables("dtpzzb").DataRows

    Dim jh As new List(of DataRow)

    Dim jh1 As new List(of String)

    If dr("pzzb9") <> 0  Then

        jh = DataTables("dtpzzb").Select(" pzzb8 <> 0 and pzzb142 = '" & dr("pzzb142") & "'")

        For Each tr As DataRow In jh

            If jh1.Contains(tr("pzzb12")) = False  Then

                jh1.Add(tr("pzzb12"))

            End If

        Next

        Dim sz() As String

        sz = jh1.ToArray

        Dim zfc As String

        zfc = String.Join(";",sz)

        dic.Add(dr,zfc)

    ElseIf dr("pzzb8") <> 0  Then

        jh = DataTables("dtpzzb").Select(" pzzb9 <> 0 and pzzb142 = '" & dr("pzzb142") & "'")

        For Each tr As DataRow In jh

            If jh1.Contains(tr("pzzb12")) = False  Then

                jh1.Add(tr("pzzb12"))

            End If

        Next

        Dim sz() As String

        sz = jh1.ToArray

        Dim zfc As String

        zfc = String.Join(";",sz)

        dic.Add(dr,zfc)

                

    End If

    

Next



MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒")


 回到顶部
总数 24 上一页 1 2 3 下一页