Hi,
 So I am working on a performance issue with our Triple Store (which is
based on HBase)
To give a background, the query I am executing looks like:

SELECT ?s
> WHERE {
>     ?s a file:File .
>     ?s ex:modified ?modified .
>     FILTER(?modified >="2017-11-05T00:00:00.00000"^^<http://
> www.w3.org/2001/XMLSchema#dateTime>)
> }


Looking at the ARQ Execution plan, it is like this:

(slice 0 1000
>     (project (?s)
>       (filter (>= ?modified "2017-1105T00:00:00.00000"^^<http://
> www.w3.org/2001/XMLSchema#dateTime>)
>         (bgp
>           (triple ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <
> http://www.example.com/File#File>)
>           (triple ?s <http://www.example.com/common#modified> ?modified)
>         ))))


AND I have around 45000 File Objects in my Triple Store.

As you can see from the above execution plan, I first get the Subject ID
for these 45000 File objects and then I fire a query per File Id to get the
odified date for the same. This clearly is not performant.

My Questions:

1. Is there a better way to create a SELECT query to have a good execution
plan.
2. If not, then can I somehow change the generation of execution plan?
3. Is it advisable to re-write the ARQ Execution Plan to suite our need and
how complicated this might be.

Thanks and please let me know if you need more information.

Thanks,
Anuj Kumar
-- 
*Anuj Kumar*

Reply via email to