以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  效率问题求助  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=192357)

--  作者:lur320
--  发布时间:2024/6/17 14:21:00
--  效率问题求助
 Dim t As New List(Of DataRow)
For Each dr As DataRow In DataTables("QC数据").Select("文件名称 is not null")
    Dim d As DataRow
    d = DataTables("QC数据").find("文件名称 is null and 文件地址=\'" & dr("文件地址") & "\'")
    If d IsNot Nothing Then
        t.Add(dr)
    End If
Next
Output.Show(t.Count)

等了15分钟,没出结果。CPU15%,内存300M。没卡死就是慢。

DataTables("QC数据")大概18万行。
有什么办法优化下?

--  作者:有点蓝
--  发布时间:2024/6/17 14:38:00
--  
这代码想实现什么功能?
--  作者:lur320
--  发布时间:2024/6/17 14:41:00
--  
 Dim t As New List(Of DataRow)
For Each dr As DataRow In DataTables("QC数据").Select("文件名称 is not null")
    Dim d As DataRow
    d = DataTables("QC数据").find("文件名称 is null and 文件地址=\'" & dr("文件地址") & "\'")
    If d IsNot Nothing Then
        t.Add(dr)
    End If
Next
for each c as data row in t
c("dup")=true
next

完整的代码,就是为了查看这个表里面那些行重复了。运行时太慢,所以想先看看多少重复的行

老代码和新代码的不同,是一个保存了文件名称,一个没有。单其他信息是一样的。所以重复了

[此贴子已经被作者于2024/6/17 14:44:48编辑过]

--  作者:有点蓝
--  发布时间:2024/6/17 14:57:00
--  
DataTables("QC数据").sqlreplacefor(dup,true,"文件名称 is  null and 文件地址 in (select 文件地址 from [QC数据] where 文件名称 is not null)")