我正在尝试优化一小段代码,这些代码一遍又一遍地连接到我们的服务器。首先,这是代码补丁
Dim sale as Sale()
With sale
If .CustomerID > 0 Then
.CustomerName = CCCustomer.SelectByID(.CustomerID).FirstNameLastName
Else
.CustomerName = "Cash Sale"
End If
End With
所以问题是,如果你有 50 个客户正在迭代,则需要很长时间才能通过数据,因为对于每个 customerID,你都必须访问 CCCustomer 对象,连接到数据库,找到customer by ID,然后从对象中选择 FirstNameLastName。
我的第一个想法是立即提取所有客户的列表或数组,然后按 ID 匹配它们,但这似乎需要更长的时间
Dim sale as Sale()
With sale
Dim allCustomers() = CCCustomer.SelectAll
If .CustomerID > 0 Then
.CustomerName = Array.FindIndex(allCustomers, Function(c) c.CustomerID = .CustomerID)
Else
.CustomerName = "Cash Sale"
End If
End With
(此代码返回 customerId,而不是名称,但无论哪种方式,它仍然需要永远)
我能想到的唯一其他选择是完全重写多个存储过程并更新对象以仅在本机上保存客户名称和客户 ID,但我想我会在完全拆开其余部分之前先检查一下的程序。
那么,当您从数据库中提取数据时,有没有人知道一种为此类事情获得体面加载时间的好方法?