我试图优化一小段代码,这些代码一遍又一遍地连接到我们的服务器。首先,这是代码补丁
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对象,连接到数据库,按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,而不是名称,但它仍然需要永远的方式)
我能想到的唯一另一个选择是完全重写多个存储过程并将对象更新为本机地保存客户名称以及customerID,但我想在我去之前办理登机手续完全撕掉了其他程序。
当你从数据库中撤出时,有没有人知道一个很好的方法可以为这样的东西获得合适的加载时间?