Would it be any use to you to have a separate process which mmaps the file?
Seems to me that would probably keep all the pages in cache constantly.


I just did a local test on my NFS setup and the file appears to cache just
fine.
Does yours behave differently?

#include <stdio.h>
#include <sqlite3.h>

int main(int argc, char *argv[])
{
  sqlite3 *db;
  int rc;
  if (argc != 2) {
    printf("Usage: %s dbfile\n",argv[0]);
    return 1;
  }
  rc = sqlite3_open_v2(argv[1],&db,SQLITE_OPEN_READONLY,NULL);
  if (rc != SQLITE_OK) {
    puts(sqlite3_errmsg(db));
    return 1;
  }
  rc=sqlite3_exec(db,"select * from t",NULL,NULL,NULL);
  if (rc != SQLITE_OK) {
    puts(sqlite3_errmsg(db));
    return 1;
  }
  sleep(60);
  return 0;
}
I had an 8.7MB database I used this on

vmtouch insert.db
           Files: 1
     Directories: 0
  Resident Pages: 0/2128  0/8M  0%
         Elapsed: 0.000394 seconds
./testro insert.db&
[1] 26598
sqlite]$ vmtouch insert.db
           Files: 1
     Directories: 0
  Resident Pages: 2128/2128  8M/8M  100%
         Elapsed: 0.000556 seconds


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

Reply via email to