以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]查询  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=101129)

--  作者:苏州老街
--  发布时间:2017/5/25 13:54:00
--  [求助]查询
老师好,下面是窗口模糊查询的内部函数,我有一个表有28万条行在查询的时候很慢。我想通过修改代码进行提速,可以吗?


\'生成可见的列名称  窗口模糊查询
Dim Cols,Vals As New List(of String)
Dim flt As String = "1=1"
For Each c As Col In Args(0).Cols
    If c.Visible = True
        cols.add(c.name)
    End If
Next
\'生成查询条件
Vals.AddRange(Args(1).Replace("\'","\'\'").Replace("*","[*]").Split(","))  \'查询值列表并保证其有效
Dim i As Integer = 0
For Each Val As String In Vals
    
    Dim temp As String = ""
    For Each c As String In Cols
        temp = temp & " Convert(" & c & ",\'System.String\') like \'%" & Val & "%\' Or"
    Next
    flt = flt & " and ("& temp.SubString(0, temp.length-3) & ")"
Next
Return flt

--  作者:有点色
--  发布时间:2017/5/25 14:07:00
--  

 既然是模糊匹配,那么就没有优化的空间了。

 

 你加载28万行数据?这不是很迟内存?尽量用分页加载,部分加载的方式。


--  作者:苏州老街
--  发布时间:2017/5/25 14:23:00
--  
谢谢老师