MS SQL DB question

Hey friends,
I have made a simple signature based antivirus in which i have taken 2 rows, NAMES and SIGNATURES. i have included only 22 virus definitions in it(16 bytes long only and for EXE only). I just check for all the bytes for EXE from start to end. but it is very slow. Could anyone please suggest me if theres some specific part in EXE which AV scans for? PE contains so many things...for eg dos header-stub. and 2nd question: Does all real world antivirus companies use DB only to store and access signatures or they have some other storage and access method too.
Thanks in Advance