sqlite3查询速度有关问题

sqlite3查询速度问题
我是一个新手,我现在有这么一个问题:我需要对内存中的数据进行跟新,也就是把不要的delete掉,把要的从数据库中加载,存到内存中。
加载的函数叫GetRegion,通过Region的英文名(可以看成是Region的唯一ID),查询数据库中的MapElement表,记录只有一条,加载它,并存到pRegion指向的结构体中。至于myChar是我自己重定义了char类型。
函数代码如下:
C/C++ code

myChar mySqlite::GetRegion( myChar * psRegEnName , myRegion * pRegion )
{
    myChar sql[256];
    /* make sql */
    strcpy(sql,"select ID,ChName,EnName,Data ");
    strcat(sql,"from MapElement ");
    strcat(sql,"where EnName='");
    strcat(sql,psRegEnName);
    strcat(sql,"';");
    sqlite3_prepare( pDB , sql ,-1 , &pstmt , NULL );
    if ( sqlite3_step( pstmt ) != SQLITE_ROW)
    {
        #ifndef ERRORMESSAGE
        fprintf(stderr,"sqlite3_step failed!\n");
        #endif
        return MYSQLITE_ERROR;
    }
         //对pstmt指向的记录进行处理,并加载到内存中。
         //do something
    sqlite3_finalize( pstmt );
    return OK;
}


现在问题是这样的,我在一次更新操作时所耗费的时间很大。因为一次更新操作调用很多次这个函数,频繁打开关闭数据库,创建毁灭stmt,我认为是这个影响我更新操作的效率的。
请问我应该如何设计才能让我是更新操作的效率提升。

------解决方案--------------------
换个思路,看看能不能用一个SQL语句来解决?

建议你直接写出你想实现的更新功能。