Bonjour, je suis vraiment bloqué avec mon application. Je dois faire un SELECT simple sur une de mes tables avec environ 250.000 lignes (50mb) en utilisant SQLITE3. Lorsque je charge avec Iphone Simulator, la requête prend environ 3 secondes. Lorsque je teste mon application sur le périphérique, la requête prend 90 secondes. Malheureusement, je ne peux pas libérer mon application avec 90 secondes d'attente. Ici, je posterai mon code:Iphone Sqlite3 Query trop lent
-(void) loadResults {
sqlite3 *database;
NSMutableString *street;
zone = [[NSMutableArray alloc] init];
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
const char *sqlStatement = [[NSString stringWithFormat:@"select street from streets "] UTF8String];
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
street = [NSMutableString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)];
[zone addObject:street];
}
}
sqlite3_finalize(compiledStatement);
}
sqlite3_close(database);}
Voici comment je l'ai créé ma table à l'aide Sqlite3
CREATE TABLE streets (id INTEGER PRIMARY KEY, street TEXT, province TEXT, country TEXT, from TEXT, to TEXT, lat TEXT, lon TEXT);
CREATE INDEX strIndx on streets(street);
Comme vous pouvez le voir il n'y a pas WHERE, il est un simple « SELECT rue de rues "
S'il vous plaît j'ai besoin d'aide ici Merci d'avance.
En ce qui concerne l'optimisation SQL va, je n'ai aucune idée, mais c'est fondamentalement un problème distinct –