이 코드는 실행하는 데 시간이 오래 걸립니다. 약 10 만 개의 레코드가 있습니다. 각 단계는 대략 동일한 시간이 걸립니다 .... FMResultSet의 결과를 가져 와서 3 개의 배열로 읽습니다. 두 개의 select 문을 사용하여 시도했습니다. 하나는 결과 카운트를 얻은 다음 그 양을 mutableArray에 할당하는 것입니다. 성능 차이는 없습니다. 속도 향상을위한 제안?FMDB - FMResultSet 속도 향상
FMResultSet *results = [database executeQuery:@"SELECT FriendlyName, Serial, Barcode FROM Inventory, Company WHERE Inventory.friendlyName <> '' AND Company.CompanyID = Inventory.companyID AND Company.CompanyName = ?", selectedCompany];
arrayFriendlyName =[[NSMutableArray alloc]init];
arraySerial = [[NSMutableArray alloc]init];
arrayBarcode = [[NSMutableArray alloc]init];
while([results next]) {
[arrayFriendlyName addObject:[results stringForColumn:@"FriendlyName"]];
[arrayBarcode addObject:[results stringForColumn:@"Barcode"]];
[arraySerial addObject:[results stringForColumn:@"Serial"]];
}
[database close];
시간이 얼마나 걸립니까 사용자에게 좋지 않습니까? 나는 100000 개의 기록이 그 과정을 늦추 리라고 믿는다. 그 일을 배경으로 보낼 수 있습니까? – Volker
다중 선택은 물론 아무것도 사지 않을 것입니다. UI 스레드를 끊으 려하지 않는다면 최적의 방법으로 @Volker가 말한대로 백그라운드 대기열에 작업을 수행 할 수 있습니다. –
그런데 한 번에 1000,000 개의 레코드가 필요한 이유는 무엇입니까? 필요하다면 레코드를 게으르지 않고 앱에 심각한 성능 위협을 일으키는 이유는 무엇입니까? –