Hi,

I am new with sqlite, and I create a program that reads several mllion
records and puts them into a sqlite db using.

The table has one column ONLY indexed and unique, but it takes many hours.

Is it necessary to pre-allocate the space, or is the anything that I can
do to reduce the time it takes.

this is how I create the db, table and index.

void openSqliteFile()
{
    rc = sqlite3_open(genome_probesDB, &db); //if it !exist creates it

    if (rc == SQLITE_OK) {
       printf("RC=%d database=%s was opened\n", rc, genome_probesDB );
    }
    else {
       printf("RC=%d database=%s COULD NOT OPEN\n", rc, genome_probesDB );
    }

    rc = sqlite3_exec(db, "CREATE TABLE probes (probe STRING unique);", 
NULL, NULL, &errmsg);
    if (rc == SQLITE_OK) {
       printf("RC=%d table probes with field probe was created\n", rc );
    }
    else {
       printf("RC=%d table %s already exists, so it was NOT created\n",
rc, genome_probesDB );
    }

    rc = sqlite3_exec(db, "CREATE INDEX probe on probes (probe);",  NULL,
NULL, &errmsg);
    if (rc == SQLITE_OK) {
       printf("RC=%d INDEX probe on table probes for field probe was
created\n", rc );
    }
    else {
    printf("RC=%d INDEX probe on table %s already exists, so it was NOT
created\n", rc, genome_probesDB );
    }


}//end void openSqliteFile()


and this is how I add the data:
    char *zSQL = sqlite3_mprintf("INSERT INTO probes VALUES(%Q)", probe);

    sqlite3_exec(db, zSQL, 0, 0, 0);
    sqlite3_free(zSQL);



Thanks very much

Michael

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to