Hi , I am using virtuoso 7 open source edition,
This query below is fast, it return the result instantly,
select *
WHERE {
graph <http://localhost:8890/graph> {
?catAtt qq:catId ?catId;
qq:caDataType ?caDataType;
qq:showInView ?showInview;
qq:valFormat ?valFormatKey;
qq:multiple ?multiple;
qq:position ?position;
qq:link ?link;
qq:catAttName ?catAttName;
qq:setting ?setting;
qq:flag ?flag;
qq:unit ?caUnit.
}
}
LIMIT 20
This query is so slow, took 10 seconds for the result, the only difference
is the ?catId is replaced with literal value 1 . I thought this should be
faster because it's more specific.
select *
WHERE {
graph <http://localhost:8890/graph> {
?catAtt qq:catId 1;
qq:caDataType ?caDataType;
qq:showInView ?showInview;
qq:valFormat ?valFormatKey;
qq:multiple ?multiple;
qq:position ?position;
qq:link ?link;
qq:catAttName ?catAttName;
qq:setting ?setting;
qq:flag ?flag;
qq:unit ?caUnit.
}
}
LIMIT 20
Why is it so ? I am still new to sparql and triplestore, seems like I have
to do some indexing on the object ?
I have tried creating the GOPS index with, I don't understand about the
Partition part, is using O correct ? What does that partition mean ?
Creating this index has improved the execution for the second query to 4
seconds, but still too slow for a DBMS.
CREATE COLUMN INDEX RDF_QUAD_GOPS
ON RDF_QUAD (G, O, P, S)
PARTITION (O VARCHAR (-1, 0hexffff));
Btw, does virtuoso stored triplet in the regular RDBMS table ? in the
table DB.DBA.RDF_QUAD ? So virtuoso does not have a native storage of
graph ? Or what I don't understand ?
Thanks
Best regards,
William
_______________________________________________
Virtuoso-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/virtuoso-users