I'm wondering if these numbers look typical of h2, or if I still have some 
bottleneck I haven't identified.

I have a probes table (mentioned in other threads) with one index over two 
columns: eid (int) and name (varchar). (eid, name) is unique. For each eid 
there might be 10k-500k rows.

The table has about 38M rows. A query that retrieves 500 rows matching a 
single eid with 240k rows, takes about 5 seconds. 

This is using the TABLE() inner join, instead of a big IN query. The 
explain analyze output shows it hitting the index.

If I close the db and re-open it, the same query takes much less than a 
second, which I suspect reflects the OS block cache. Though, as I mentioned 
earlier, the disk doesn't seem very strained during the first query. I'm 
not sure what that means.

The query:
SELECT  `probes`.`name` as `gene`, `probes`.`id`  FROM `probes`       INNER 
JOIN TABLE(name varchar=?) T ON T.`name`=`probes`.`name`       WHERE 
(`probes`.`eid` = ?)

The explain analyze:

SELECT
    PROBES.NAME AS GENE,
    PROBES.ID
FROM TABLE(NAME VARCHAR=?1) T
    /* function */
    /* scanCount: 501 */
INNER JOIN PUBLIC.PROBES
    /* PUBLIC.EID_NAME_INDEX_8: EID = ?2
        AND NAME = T.NAME
     */
    ON 1=1
    /* scanCount: 1000 */
WHERE (PROBES.EID = ?2)
    AND (T.NAME = PROBES.NAME)


-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to h2-database+unsubscr...@googlegroups.com.
To post to this group, send email to h2-database@googlegroups.com.
Visit this group at http://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to