-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Matthew Tippett wrote: > 'How do I determine what impact the host os/environment has on sqlite'.
The very first test should be a sanity check where you do a bunch of inserts each as their own transaction. Each transaction should require calling fsync twice so on a 7200rpm drive (120 revolutions per second) you should not be getting more than 60 transactions per second (make sure you use "BEGIN IMMEDIATE"). If you do the drive/operating system is lying about the fsyncs and any further SQLite testing is not valid. > I am personally thinking of a composite test that contains the > following classes of performance tests. > 1) Trivial looped tests (the current set). > 2) Complex query (again looped) > 3) Large data set > 4) Large field set > > Any thoughts? You can use this to generate SQL that covers the above somewhat and is what the SQLite team use. My own benchmarking uses it with a scale parameter so all the 50,000 can be 500,000 or 500 as needed. http://www.sqlite.org/cvstrac/fileview?f=sqlite/tool/mkspeedsql.tcl My experience with it is that the resulting benchmark numbers I got seemed right (eg ext4 was faster than ext3). Be aware that the more "complex" the testing the less likely the SQL will be portable to other database engines requiring per engine tweaking which then makes the benchmark less reliable as a cross engine comparison. I would suggest you create scenarios instead of the synthetic stuff above, such as analysing web logs as that is a lot easier to independently verify and implicitly defines reasonable values for "large" - eg URLs and referrer strings have a known distribution of sizes. (Also watch out for SQLite not having a native date/time type.) These guys (tweakers.net) modelled their own web site as the benchmark: http://preview.tinyurl.com/y8fe7w3 SQLite is used in Firefox for history and benchmarks. Why not extrapolate from the queries in the Firefox source code? You can look at the list on this page http://sqlite.org/famous.html for other real world usage. Running "strings" on various binaries should give you an idea of queries (eg Apple's mail client, Google desktop, McAfee virus). I'd much rather see results for "Firefox history" or "Mail client" than "Large data set #3" :-) Roger -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkrI5IkACgkQmOOfHg372QT9EQCfVhueFkuitdSUM1QuGneaBN9L gwwAn1cdg6KdmMm80poCnxmsfOere0PO =8uaZ -----END PGP SIGNATURE----- _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users