> I run a test on a small database, around 128MB using Firebird 2.5 64 bit
> superserver and the test condition is like these :
> 
> 1) Put database completely on RAM, set DefaultDbCachePages = 2048 and
> FileSystemCacheThreshold = 0
> 2) Put database completely on disk, set DefaultDbCachePages = 2048 and
> FileSystemCacheThreshold = 0
> 3) Put database completely on RAM, set DefaultDbCachePages = 2048 and
> FileSystemCacheThreshold = 65536
> 4) Put database completely on disk, set DefaultDbCachePages = 2048 and
> FileSystemCacheThreshold = 65536
> 
> 
> I do some extensive select sql on this database, time to finished on each
> conditions are :
> 1) +/- 37 sec
> 2) unknown since it seems took a very long time that I must ended with
> task manager
> 3) +/- 6 sec
> 4) +/- 6 sec
> 
> From those result, I don't understand why result from test condition 1
> (which is, database completely on RAM) is slower than condition 3 and 4.
> 
> Isn't test condition 1,3 & 4, all running on RAM?

Yes, but RAM disk is not the same as RAM.  Further, some RAM disk drivers are 
much better than others.

Sometime ago, I found an analysis/comparison of various RAM Disk drivers.  
Although the analysis was a couple of years old, it did find that there are 
substantial performance differences between drivers.

I can see if I can find the link, if you'd like.


Separately, did you run all the tests from the same state -- ie. a fresh 
reboot.  If not, test #1 would be paying the cost to load all of the pages into 
the OS cache, whereas the other tests would not.  Either reboot between tests, 
or create a pre-test pass which would force the database to be loaded and then 
run the tests.


Sean

Reply via email to