Vander Clock Stephane wrote:
> Hello,
>
> But i not understand how the R* tree based table can help me here ?


The BETWEEN queries are specifically optimized by R*Tree.

>
> can you explain me ?
>
> thanks you by advance
> stephane
>
> On 12/9/2010 8:24 PM, Gabríel A. Pétursson wrote:
>> It seems to me that you may want to consider defining your table as a
>> virtual R* tree based table.
>>
>> See http://www.sqlite.org/rtree.html
>>
>> On Wed, 2010-12-08 at 19:56 +0300, 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
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users



-- 
Puneet Kishor http://punkish.org
Carbon Model http://carbonmodel.org
Charter Member, Open Source Geospatial Foundation http://www.osgeo.org
Science Fellow http://creativecommons.org/about/people/fellows#puneetkishor
Nelson Institute, UW-Madison http://www.nelson.wisc.edu
---------------------------------------------------------------------------
Assertions are politics; backing up assertions with evidence is science
===========================================================================
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to