Hi Sebastian,

Indeed, I am only using the default indexes. Thanks a lot for the hint.
I suppose I need indexes like gsop and gspo?

OK, this is obviously BS. I think I need some private lessons in index design... anyway, I suppose something like SPOG
POSG
OPSG
GSPO
GPOS
makes more sense?
I will use many queries over multiple graphs, i.e. graph not defined.
I will also have many queries where the subject is not defined.


I suggest you read the following document:

  http://docs.openlinksw.com/virtuoso/rdfperformancetuning.html



For virtuoso 5.0.12 you should probably create the following extra indexes:

  create bitmap index RDF_QUAD_OPGS on DB.DBA.RDF_QUAD (O, P, G, S);

  create bitmap index RDF_QUAD_POGS on DB.DBA.RDF_QUAD (P, O, G, S);

  create bitmap index RDF_QUAD_GPOS on DB.DBA.RDF_QUAD (G, P, O, S);

Note that the documentation also mentions the partition option but this is not used with V5.


For V6 i suggest you change to the facet browser layout, which is a bit more complicated:


  log_enable (2);

  drop index RDF_QUAD_OGPS;

  checkpoint;

  create table R2 (G iri_id_8, S iri_id_8, P iri_id_8, O any,
  primary key (S, P, O, G));

  alter index R2 on R2 partition (S int (0hexffff00));

  insert into r2 (g, s, p, o) SELECT g, s, p, o from rdf_quad;

  drop table RDF_QUAD;

  checkpoint;

  alter table r2 rename RDF_QUAD;

  create bitmap index RDF_QUAD_OPGS on DB.DBA.RDF_QUAD (O, P, G, S)
  partition (O varchar (-1, 0hexffff));

  create bitmap index RDF_QUAD_POGS on RDF_QUAD (P, O, G, S)
  partition (O varchar (-1, 0hexffff));

  create bitmap index RDF_QUAD_GPOS on RDF_QUAD (G, P, O, S)
  partition (O varchar (-1, 0hexffff));

  checkpoint;

  log_enable (1);




Patrick


Reply via email to