Re: [sqlite] HELP for SQLite MEMORY test.

2006-05-18 Thread Jay Sprenkle

On 5/18/06, Manzoor Ilahi Tamimy <[EMAIL PROTECTED]> wrote:

DEAR All ,

   I want to use SQLite for our project, the main thing is that the
   database contains millions of Records. So for the faster
 operations   on the db I want to use the SQLite as in-memory database.

   I have compared the results of SQLite as Disk db and as Memory db
   but I am not getting much difference. I am surprised that there
  must  be some difference between memory mode and disk mode.


The operating system disk cache is putting the disk database in memory
too. So you basically have two in memory databases.


[sqlite] HELP for SQLite MEMORY test.

2006-05-18 Thread Manzoor Ilahi Tamimy
DEAR All ,
   
   I want to use SQLite for our project, the main thing is that the 
   database contains millions of Records. So for the faster 
 operations   on the db I want to use the SQLite as in-memory database.
 
   I have compared the results of SQLite as Disk db and as Memory db 
   but I am not getting much difference. I am surprised that there 
  must  be some difference between memory mode and disk mode.
 
   Tests were run on 2.4GHz Sempron with 1GB of RAM and running 
  Windows  XP + SP2 with all updates applied. Test 20 : 100 
  INSERTs CREATE  TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100)); 
  INSERT INTO t1  VALUES(1,13153,'thirteen thousand one hundred fifty 
  three');
   
   In Memory 37.51 Sec 
   DISK BASED 39.76 Sec 
   Disk Space consumed 61.6 MB 
   
 
   Test 21`: 300 INSERTs
   In Memory 141.79 Sec 
   DISK BASED 111.906000 Sec 
   Disk Space consumed 185 MB
   
 
   Test 22: 500 INSERTs
 
   In Memory 279.42 Sec
   DISK BASED 201.266000 Sec 
   Disk Space consumed 308 MB
   Test 23: 1000 INSERTs
   
 
   In Memory 784.797000 Sec 
   DISK BASED 399.846000 Sec
   Disk Space consumed 617 MB
   
 
   I am testing it in the following way
   
 
   dwStart = GetTickCount();
   db.execDML("begin transaction;");
   db.execDML("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))
 ;") ; for( int i=1;i<=1000;i++) db.execDML("INSERT INTO t1 
 VALUES(1, 298361,'two hundred ninety eight  thousand three hundred')
 ");  db.execDML("commit Transaction") ;  dwStop = GetTickCount();
 
   
   I think I am missing something or some necessary parameters. I 
  spent  a lot of time to find out the problem. Please Guide me. I 
  will be  really thankful.
 
   Regards,
 
   MANZOOR ILAHI
--
COMSATS Institute of Information Technology (http://www.ciit.edu.pk)