Other than not using SQL, you might look into you disk system as that is usually the bottle-neck. But, first I'd identify the bottle-neck. Is the data spread over many disks? Are there multiple data files (also on differe disks)? Are you using SSD drives? How much memory do you have? 10M isn't that many rows, but using a "search" like that SQL can't really take advantage of any indexes, so that probalby won't help.