All:
I need to check a database for readability before my application
starts.  I was originally going to keep an MD5 on the database and
check it each time at powerup.  This seems to take a great deal of
time so instead I thought abou having the database do an integrity
check at powerup, however this too takes a great deal of time.  My
last idea was to issue a set of simple select statements against the
database and check if they are successful.  I realize this doesnt
'guarantee' my data is fine like an MD5 would, nor does it really
validate the integrity of the database like an integrity check
would.... but can I assume to some degree of comfort that if these
select statements succeed then I can access these tables in the
database error free?

I ran some test cases (I know you guys and gals like actual numbers
and not theory), and came up with the following
sqlite3 'pragma integrity_check'
real    0m 11.20s
user    0m 1.85s
sys     0m 8.70s

md5sum -c ...
real    0m 10.07s
user    0m 1.32s
sys     0m 8.16s

sqlite3 'SELECT STATEMENTS FROM IMPORTANT TABLES'
real    0m 2.34s
user    0m 0.19s
sys     0m 1.74s


Now for clarity.... The database contains AV metadata and data.  I
have tables such as ImageData, ImageDescription, AudioData, and so on.
 I also have tables that are not 'important' (suffice it to say, I
wont access them during runtime under normal conditions).  I care
about the AV data being accessible.... I am optimistically assuming
that if the data is corrupt, the image will still display (with
perhaps some bad pixels) and / or the audio has some unwanted clicks
or pops.


The big question.... Using a group of select statements to check the
database for accessibility seem reasonable?  Or am I taking a large
gamble doing so?
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to