Sql 테이블에 Linq를 사용하여 대량 삽입을 시도하고 있습니다. 저는 아직 linq을 배우는 중입니다. 그러니 친절하십시오.Linq with Sql (Bulk Insert)
모든 것이 훌륭하게 가져 오기 때문에 코드는 문제가되지 않지만 프로세스가 너무 느립니다. 약 15k 개의 레코드가있는 반면 각 레코드는 4 초입니다.
문제의 주된 핵심은 (내가 생각하기에) 레코드를 추가하기 전에 먼저이 레코드가 이미 존재하는지 확인해야합니다. 중복이 없는지 확인해야합니다. 그래서 이미 기존의 15k 레코드 데이터베이스로 검색을 수행하고 레코드를 찾으면 true/false 응답을 보냅니다.
Dim expr = From spare In db.tblSpareParts Where spare.SparePartDeleted = False Select spare
For Each part In expr
If part.SparePartYnumber = ynumber Then
Return True
End If
Next
Return False
액세스 문서를 반복하는 주요 코드.
끝에 For Each Me.dr In dt.Rows
If dr.Item(0).ToString <> "" Then
blnfoundit = db.getynumberinfo(dr.Item(0).ToString)
If blnfoundit Then
db.setSparePart("Toevoegen", dr.Item(0).ToString, dr.Item(1).ToString, "", "", "Mat Ref: " & dr.Item(2).ToString & " - Vendor : " & dr.Item(5).ToString, 0, 0, CInt(IIf(dr.Item(12).ToString = "", 0, dr.Item(12).ToString)))
End If
End If
Next
는 SQL의 모든 배치하는 코드의 조각 :이 과정을 빠르게하는 방법에 대한
Dim sqlimport As New tblSparePart
With sqlimport
.SparePartCurrentStock = currentstock
.SparePartDeleted = False
.SparePartDescription = description
.SparePartLastModified = DateTime.Now()
.SparePartLocation = location
.SparePartMinimumStock = minimumstock
.SparePartPrice = price
.SparePartRemarks = remarks
.SparePartType = type
.SparePartUserName = General.username
.SparePartYnumber = ynumber
End With
db.tblSpareParts.InsertOnSubmit(sqlimport)
db.SubmitChanges()
어떤 아이디어?
Btw, 나는 비슷한 것들을 웹에서 찾았고 SqlBulkCopy에 대해 뭔가 발견했다. 그러나 나는 그것을 사용하는 방법에 대해 전혀 모른다. 응답에 미리 I have a Tags Table. How to Bulk Insert using LINQ?
감사합니다,
응답 해 주셔서 감사합니다. 이제 업데이트가 절반 정도되었으므로 먼저 업데이트가 완료됩니다. 내일 당신의 제안이 트릭을 할 수 있는지 한번 볼 것입니다. – GertDeWilde