----- Original Message ---- > From: John Stanton <[EMAIL PROTECTED]> > To: sqlite-users@sqlite.org > Sent: Wednesday, November 14, 2007 11:43:48 AM > Subject: Re: [sqlite] Re: Threads > > If you machine has a single disk it fundamentally does not have parallel > I/O. If you have a machine with multiple dik spindles and multiple > channels then you can have parallel access. Multiple Sqlite databases > residing on the same disk are accessed sequentially because the access > depends upon the disk head positioning.
> If you have a mutliple processor machine or a multiple core processor > then you have some parallel computing ability. It can be added that while disks can only perform one operation at a time, modern disks have NCQ capabilities that enable them to reduce seek times by using an elevator algorithm for example. The OS is also performing some optimizations when queuing up several I/O requests to the same device. So yeah it's possible to increase throughput (and keeping latency in check) by running several queries in parallel on the same db (especially if in a scenario that involves a large majority of read access) that resides in one file on one disk. Also, like you mentioned, the CPU cost of performing one query is not negligible (especially when performing complex queries that can use quite a lot of CPU), so if the host has multiple cores, things will get a little quicker. Nicolas