no one have an idea how to do such query ?? thanks stéphane
On 12/8/2010 7:56 PM, Vander Clock Stephane wrote: > Hello, > > on the table : > > CREATE TABLE HASH( > ID INTEGER PRIMARY KEY ASC, > x1_y1 INTEGER, > x1_y2 INTEGER, > x1_y3 INTEGER, > x1_y4 INTEGER, > x1_y5 INTEGER, > x2_y1 INTEGER, > x2_y2 INTEGER, > x2_y3 INTEGER, > x2_y4 INTEGER, > x2_y5 INTEGER, > x3_y1 INTEGER, > x3_y2 INTEGER, > x3_y3 INTEGER, > x3_y4 INTEGER, > x3_y5 INTEGER, > x4_y1 INTEGER, > x4_y2 INTEGER, > x4_y3 INTEGER, > x4_y4 INTEGER, > x4_y5 INTEGER, > x5_y1 INTEGER, > x5_y2 INTEGER, > x5_y3 INTEGER, > x5_y4 INTEGER, > x5_y5 INTEGER > ); > CREATE INDEX HASH_X1_Y1_IDX ON HASH (X1_Y1); > CREATE INDEX HASH_X2_Y2_IDX ON HASH (X2_Y2); > CREATE INDEX HASH_X3_Y3_IDX ON HASH (X3_Y3); > CREATE INDEX HASH_X4_Y4_IDX ON HASH (X4_Y4); > CREATE INDEX HASH_X5_Y5_IDX ON HASH (X5_Y5); > > > with millions of rows, how to optimize such query : > > Select > ID > from > HASH > where > x1_y1>=<#randomnumber1> and > x1_y1<=<#randomnumber1>+ 20 and > x1_y2>=<#randomnumber4> and > x1_y2<=<#randomnumber4> + 20 and > x1_y3>=<#randomnumber7> and > x1_y3<=<#randomnumber7> + 20 and > x1_y4>=<#randomnumber10> and > x1_y4<=<#randomnumber10> + 20 and > x1_y5>=<#randomnumber13> and > x1_y5<=<#randomnumber13> + 20 and > x2_y1>=<#randomnumber16> and > x2_y1<=<#randomnumber16> + 20 and > x2_y2>=<#randomnumber19> and > x2_y2<=<#randomnumber19> + 20 and > x2_y3>=<#randomnumber22> and > x2_y3<=<#randomnumber22> + 20 and > x2_y4>=<#randomnumber25> and > x2_y4<=<#randomnumber25> + 20 and > x2_y5>=<#randomnumber28> and > x2_y5<=<#randomnumber28> + 20 and > x3_y1>=<#randomnumber31> and > x3_y1<=<#randomnumber31> + 20 and > x3_y2>=<#randomnumber34> and > x3_y2<=<#randomnumber34> + 20 and > x3_y3>=<#randomnumber37> and > x3_y3<=<#randomnumber37> + 20 and > x3_y4>=<#randomnumber40> and > x3_y4<=<#randomnumber40> + 20 and > x3_y5>=<#randomnumber43> and > x3_y5<=<#randomnumber43> + 20 and > x4_y1>=<#randomnumber46> and > x4_y1<=<#randomnumber46> + 20 and > x4_y2>=<#randomnumber49> and > x4_y2<=<#randomnumber49> + 20 and > x4_y3>=<#randomnumber52> and > x4_y3<=<#randomnumber52> + 20 and > x4_y4>=<#randomnumber55> and > x4_y4<=<#randomnumber55> + 20 and > x4_y5>=<#randomnumber58> and > x4_y5<=<#randomnumber58> + 20 and > x5_y1>=<#randomnumber61> and > x5_y1<=<#randomnumber61> + 20 and > x5_y2>=<#randomnumber64> and > x5_y2<=<#randomnumber64> + 20 and > x5_y3>=<#randomnumber67> and > x5_y3<=<#randomnumber67> + 20 and > x5_y4>=<#randomnumber70> and > x5_y4<=<#randomnumber70> + 20 and > x5_y5>=<#randomnumber73> and > x5_y5<=<#randomnumber73> + 20; > > because they takes very very lot of time (hourS) to return :( > on other SGBD (like Firebird) with same amount of data > they return immediatly ... > > Thanks by advance > stéphane > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users