tags:

views:

29

answers:

1

Hi guys,

Here in my Application I go performance problem when I build the application in Device.

actually in my database i am having the table wine details in shich there are 2114 winenames are there . to get the all those wine names I wrote the code in appDelegate as:

-(NSMutableArray*)getWineDetails
{ 

   [wineDetailsList removeAllObjects];

   sqlite3_stmt* statement;
   const char *sql = "select *from wineDetails order by name";

   if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) != SQLITE_OK) {
       NSAssert1(0, @"Error: failed to prepare statement with message '%s'.", sqlite3_errmsg(database));
   }


   while (sqlite3_step(statement) == SQLITE_ROW) 
   {
    primaryKey = sqlite3_column_int(statement, 0);
    //printf("\n primaryKey1 Value:%d",primaryKey);

    wineDetails *wineDets = [[wineDetails alloc] initWithPrimaryKey:primaryKey database:database];  
    [wineDetailsList addObject:wineDets];

    //printf("\n ==========================%d",[wineDetailsList count]);
    [wineDets release];
   }

   sqlite3_finalize(statement);
   printf("\n Inside AppDelegate .....wineDetailsList count:%d",[wineDetailsList count]);
   return wineDetailsList;

}

and I am calling this method in the viewWillAppear of nother controller where I have to display the wine names in the table view.

In viewWillAppear the code is as:

-(void)viewWillAppear:(BOOL)animated
{
    CorkItAppDelegate* appDelegate = (CorkItAppDelegate*)[[UIApplication sharedApplication] delegate];
    winesList = [appDelegate getWineDetails];
[tableView reloadData];
}

Here the problem is when I build it in device it takes so much time to navigate into that controller due to more data in the database.

What should I do to get rid of dis.

Anyone's help will be appreciated.

Thank you, Monish Kumar.

A: 

Just as a quick suggestion, you could add an index on the name column, that might speed up the fetch. Also, make sure you're not fetching any more things than you need.

nevan
Hi naven,Actually I had no idea about the index in the database.
monish
Did it make the app faster?
nevan
Yup I tried using index.even thought its slow...but it is faster than before not using index.
monish