우리 서버에 반복적으로 연결되는 작은 코드 패치를 최적화하려고합니다. 시작하려면 여기 당신이있는 경우객체의 단일 속성에 액세스하기 위해 데이터베이스에서 객체를 생성하기 위해 작업하십시오.
Dim sale as Sale()
With sale
If .CustomerID > 0 Then
.CustomerName = CCCustomer.SelectByID(.CustomerID).FirstNameLastName
Else
.CustomerName = "Cash Sale"
End If
End With
그래서 문제가,이를 통해 반복되는 50 명 고객이 말하는 것을 코드의 패치, 그것은 각 고객 ID에 관해서는, 데이터를 통해 얻을 수있는 긴 시간이 오래 걸립니다 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.하지만 프로그램의 나머지 부분을 완전히 분해하기 전에 체크인하리라고 생각했습니다.
그렇다면 누구나 데이터베이스에서 당길 때 이처럼 적절한로드 시간을 얻는 좋은 방법을 알고 있습니까?
편집 : 죄송합니다. 내 부분에 대한 잘못된 설명이었습니다. 고객을 통해 iterating하지 않는 것은 고객 개체를 만드는 것입니다. 이 같은 것을 .... 있었다 그렇다면
| SaleID | CustId | ... |
| 1 | 1 | ... |
| 2 | 1 | ... |
| 3 | 2 | ... |
| 4 | 1 | ... |
| 5 | 2 | ... |
는 그런 다음 CCCustomer.SelectByID (1) 3 번을 사용 - 기본적으로 고객 대상 3 회를 만드는 그냥 firstnamelastname 정보를 얻을 수 있습니다.