什么是处理此功能的最有效方法?

新手需要一些逻辑流程的帮助: 我正在使用Asp.net Ajax工具包附带的Auto Complete扩展程序控件。此扩展程序连接到Web服务,该服务将运行每次用户键入文本框时查询数据库的函数。我们将要使用的数据库将有成千上万的记录,因此性能就是我的目标。这是我在Web服务中的功能:
   Public Function PatronList(ByVal prefixText As String, ByVal count As Integer) As String()

    Dim MyPatrons As New List(Of String)

    Dim MyConn = System.Configuration.ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
    Dim sqlPatronList As New SqlDataSource(MyConn, "spBarredList " & prefixText)
    Dim tblPatronList As System.Data.DataView = sqlPatronList.Select(New DataSourceSelectArguments)

    Dim CurPatronRow As Long
    Dim MaxPatronRow As Long = tblPatronList.Count
    For CurPatronRow = 0 To MaxPatronRow - 1

        MyPatrons.Add(tblPatronList.Item(CurPatronRow).Item("FullName"))
    Next

    Return MyPatrons.ToArray

End Function
“spBarredList”是一个存储过程,当传入3个字符时,它在3列上执行类似语句。所以这是我的问题: 以这种方式执行它是否更有效,或者只是将所有记录选择到数据集中,将它们添加到数组中,然后搜索数组?每次运行此函数时,是否会创建新的数据源和列表实例? 提前致谢。     
已邀请:
让SQL进行过滤通常更好(从效率的角度来看)。当然,这是假设您的SP不是非常低效。但一般来说,SQL在过滤数据方面比遍历数组要快得多。     

要回复问题请先登录注册