2013-12-15 2 views
0

Apple 설명서에는 코어 데이터 기반 iOS 7 애플리케이션에 대용량 데이터를 효율적으로 삽입하기 위해서는 먼저 첫 번째 단계에서 관계를 떠나서 직선 삽입을 수행해야합니다. 그런 다음 업데이트를 수행하는 두 번째 단계에서 관계가 장면으로 나타납니다.대용량 데이터 삽입 핵심 데이터 및 관계

제 질문은 : 다른 테이블과 관계가있는 테이블에 400000 레코드의 대량 삽입의 경우 응용 프로그램이 처음으로 루프 400000을 실행하여 직선 삽입을 수행 한 다음 400000의 다른 루프 테이블 간의 관계를 확립하는 것?

이렇게하는 효과적인 방법이 있습니까? 아니면 위의 순서 만 따라야합니까?

답변

0

내 제안은 일괄 적으로 가져 오기 작업을 수행하는 것입니다. 예를 들어 첫 번째 N 데이터를 가져 와서 저장 및 재설정하는 등의 작업을 수행 할 수 있습니다. 이 메커니즘을 사용하면 메모리 사용 공간을 관리 할 수 ​​있으며 원하는 경우 초기 데이터로 작업 할 수 있습니다. 즉 사용자가 나머지 배치를 가져 오는 동안 사용자가 초기 데이터와 상호 작용할 수 있습니다.

N을 계산하려면 가져 오기 작업의 객관적인 시간을 얻는 유일한 방법이므로 Core Data Instrument를 사용해야합니다. 내가 생각하는 다른 방법은 없다.

다른 내 대답에는 데이터 가져 오기에 가장 적합한 방법 인 Core Data Fetch requests slow on large data set이 나와 있습니다.

+0

일괄 처리는 디스크 입출력의 균형을 유지하는 좋은 방법이지만 관계 확인 성능과 관련하여 이점이 없습니다. – ImHuntingWabbits

+0

@ImHuntingWabbits 동의합니다. 어쨌든 내 경험에 비추어 볼 때 가져 오기 단계를 측정하여 향상시키는 것이 유일한 방법입니다. –

0

400k 레코드 삽입을 두 번 실행하는 데 비용이 많이 듭니다. 그러나 관계 검증은 비용이 많이 들며 문서에서 초기 삽입물을 남겨 둘 것을 권장하는 이유가 있습니다.

초기 삽입 중에 연결해야 할 관계를 계산하여 두 번째 통과 기간을 제한 할 수도 있습니다.