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*