Hi Nicola, Can you please provide the output of running the profile() function for these two queries ie replace explain with profile, which provides more information on the query execution:
http://docs.openlinksw.com/virtuoso/databaseadmsrv.html#readingqueryprofile There has not really been changes indexes but more in the query optimiser were the plans may have changed which the explain and profile outputs should help identify for your query ... Best Regards Hugh Williams Professional Services OpenLink Software, Inc. // http://www.openlinksw.com/ Weblog -- http://www.openlinksw.com/blogs/ LinkedIn -- http://www.linkedin.com/company/openlink-software/ Twitter -- http://twitter.com/OpenLink Google+ -- http://plus.google.com/100570109519069333827/ Facebook -- http://www.facebook.com/OpenLinkSoftware Universal Data Access, Integration, and Management Technology Providers On 11 Oct 2013, at 09:52, Nicola Vitucci <nicola.vitu...@gmail.com> wrote: > Hi all, > > I got a problem with Virtuoso 7.0.0 and I think it's related to the use > of indices. My question is: have there been any big changes between the > rc2 and the stable version, so that indices are not completely > compatible across the two versions? > > Here is one of the queries I ran on both versions (just the names have > been changed): > > PREFIX int: <namespace#> CONSTRUCT {?s int:new_prop ?n} WHERE {?s <prop> > ?c . ?c rdfs:label ?n} > > and below you can find the result of EXPLAINing the query on the rc2 > version first and then on 7.0.0. The query is reasonably fast on rc2 > (41659 msec with ResultSetMaxRows = 10000), while it takes an awfully > long time (1011741 msec, same ResultSetMaxRows) on 7.0.0. Other queries > have a similar problem. > > Any ideas? > > Thank you, > > Nicola > > ------------------------ > Virtuoso rc2 > > { > > Precode: > 0: { > s# 63 cluster outer seq start, set no <V $44 set_ctr in> > save ctx:() > > Precode: > 0: <V $27 vector x> := Call vector ( 1 , 0 , 3 , #new_prop , 1 > , 1 ) > 5: <V $29 vector x> := Call vector (<V $27 vector x>) > 10: <V $31 vector x> := Call vector () > 15: BReturn 0 > s# 89 Fork 46 > { > s# 70 from DB.DBA.RDF_QUAD by RDF_QUAD 2.5e+05 rows > Key RDF_QUAD ASC (<V $35 s_1_7_t1.O an>, <V $34 s_1_7_t1.S rn>) > inlined P = #prop > row specs: O LIKE <c T�> > > s# 77 from DB.DBA.RDF_QUAD by RDF_QUAD 1 rows > Key RDF_QUAD ASC (<V $38 s_1_7_t2.O an>) > inlined P = #label , S = <v $81 k_s_1_7_t1.O S83 rn> > vector param casts: <V $35 s_1_7_t1.O an>-> <v $81 k_s_1_7_t1.O S83 rn> > > > After code: > 0: <V $40 __ro2lo x> := Call __ro2lo (<V $38 s_1_7_t2.O an>) > 5: <V $42 vector x> := Call vector (<r $34 s_1_7_t1.S via S77 > S83>, <V $40 __ro2lo x>) > 10: if ($47 "user_aggr_notfirst" = 1 ) then 25 else 14 unkn 14 > 14: $47 "user_aggr_notfirst" := := artm 1 > 18: <V $49 user_aggr_ret x> := Call DB.DBA.SPARQL_CONSTRUCT_INIT > ($48 "user_aggr_env") > 25: <V $49 user_aggr_ret x> := Call DB.DBA.SPARQL_CONSTRUCT_ACC > ($48 "user_aggr_env", <r $29 vector via S77 S83 S70>, <V $42 vector x>, > <r $31 vector via S77 S83 S70>, 1 ) > 32: BReturn 0 > } > s# 92 skip node 1 <none> <V $44 set_ctr in> > > After code: > 0: <V $50 callret-0 x> := Call DB.DBA.SPARQL_CONSTRUCT_FIN ($48 > "user_aggr_env") > 7: BReturn 0 > s# 96 Subquery Select(<V $50 callret-0 x>) > set no: <r $44 set_ctr via S92> > } > > 8: <none> := Call DB.DBA.RDF_DICT_OF_TRIPLES_TO_THREE_COLS ($100 > "scalar") > 15: BReturn 0 > END Node > } > > ------------------------ > Virtuoso 7.0.0 > > { > > Precode: > 0: { > > Precode: > 0: vector := Call vector ( 1 , 0 , 3 , #new_prop , 1 , 1 ) > 5: vector := Call vector (vector) > 10: vector := Call vector () > 15: BReturn 0 > { fork > RDF_QUAD 4.2e+08 rows(s_1_7_t2.S, s_1_7_t2.O) > inlined P = #label > > Precode: > 0: __ro2lo := Call __ro2lo (s_1_7_t2.O) > 5: BReturn 0 > RDF_QUAD_POGS 33 rows(s_1_7_t1.S) > P = #prop , O = cast > > After code: > 0: vector := Call vector (s_1_7_t1.S, __ro2lo) > 5: if ($47 "user_aggr_notfirst" = 1 ) then 20 else 9 unkn 9 > 9: $47 "user_aggr_notfirst" := := artm 1 > 13: user_aggr_ret := Call DB.DBA.SPARQL_CONSTRUCT_INIT ($48 > "user_aggr_env") > 20: user_aggr_ret := Call DB.DBA.SPARQL_CONSTRUCT_ACC ($48 > "user_aggr_env", vector, vector, vector, 1 ) > 27: BReturn 0 > } > skip node 1 <none> set_ctr > > After code: > 0: callret-0 := Call DB.DBA.SPARQL_CONSTRUCT_FIN ($48 "user_aggr_env") > 7: BReturn 0 > Subquery Select(callret-0) > } > > 8: <none> := Call DB.DBA.RDF_DICT_OF_TRIPLES_TO_THREE_COLS ($100 > "scalar") > 15: BReturn 0 > END Node > } > > ------------------------------------------------------------------------------ > October Webinars: Code for Performance > Free Intel webinars can help you accelerate application performance. > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from > the latest Intel processors and coprocessors. See abstracts and register > > http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk > _______________________________________________ > Virtuoso-users mailing list > Virtuoso-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/virtuoso-users
smime.p7s
Description: S/MIME cryptographic signature
------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk
_______________________________________________ Virtuoso-users mailing list Virtuoso-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/virtuoso-users