首页 > 解决方案 > 如果指定了更多对象值,sparql 会变慢

问题描述

使用 virtuoso 7 开源版,

下面这个查询很快,它立即返回结果,

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

这个查询太慢了,需要 10 秒才能得到结果,唯一的区别是 ?catId 被替换为文字值 1

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

为什么会这样?我还是 sparql 和 Triplestore 的新手,好像我必须对对象做一些索引?

编辑 :

我尝试使用创建 GOPS 索引,但我不了解 Partition 部分,使用 O 是否正确?那个分区是什么意思?创建此索引已将第二个查询的执行时间提高到 4 秒,但对于 DBMS 来说仍然太慢。

CREATE COLUMN INDEX RDF_QUAD_GOPS
  ON RDF_QUAD (G, O, P, S)
  PARTITION (O VARCHAR (-1, 0hexffff));

标签: sparqlvirtuosotriplestore

解决方案


请参阅 OpenLink 社区论坛上对此问题的以下回复https://community.openlinksw.com/t/sparql-slow-if-more-object-value-specified/2064/2 ...在那里发布所有进一步的问题。 ...


推荐阅读