Hi Rose,

Actually the explain() function execution time is the compilation time for the 
query as it does not actually run the query, just compile it ...

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

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 26 Nov 2013, at 05:25, Rose Beck <rosebeck...@gmail.com> wrote:

> I mean is the time returned by explain() the query execution time excluding 
> the compilation time?
> 
> 
> 
> On Tue, Nov 26, 2013 at 10:54 AM, Rose Beck <rosebeck...@gmail.com> wrote:
> Sorry my bad.
> explain() does return a time. Is the time which is returned by explain the 
> query execution time?
> 
> SQL> explain('sparql select * where{?a ?b ?c}');
> REPORT
> VARCHAR
> _______________________________________________________________________________
> 
> { 
> from DB.DBA.RDF_QUAD by RDF_QUAD_POGS    2.1e+08 rows   
> Key RDF_QUAD_POGS  ASC ($23 "s_1_2_t0.S", $22 "s_1_2_t0.P", $21 "s_1_2_t0.O")
>  
>  
>  
> After code:
>       0: $26 "a" := Call __id2in ($23 "s_1_2_t0.S")
>       5: $27 "b" := Call __id2in ($22 "s_1_2_t0.P")
>       10: $28 "c" := Call __ro2sq ($21 "s_1_2_t0.O")
>       15: BReturn 0
> Select ($26 "a", $27 "b", $28 "c", <$25 "<DB.DBA.RDF_QUAD s_1_2_t0>" spec 5>)
> }
> 
> 13 Rows. -- 1 msec.
> 
> Since the dataset contains a lot of rows therefore I am a bit confused?
> 
> 
> On Tue, Nov 26, 2013 at 11:00 AM, Hugh Williams <hwilli...@openlinksw.com> 
> wrote:
> Hi Rose,
> 
> I don't see any single quotes around the query in the explain function call ?
> 
> 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 26 Nov 2013, at 05:11, Rose Beck <rosebeck...@gmail.com> wrote:
> 
>> I tried to use explain() with SPARQL but its giving me the following error. 
>> Also does explain return the query execution time(which does not include the 
>> compilation time).
>> 
>> SQL> explain (sparql select * where{?a ?b ?c});
>> 
>> *** Error 37000: [Virtuoso Driver][Virtuoso Server]SQ074: Line 1: syntax 
>> error at 'sparql' before 'SELECT'
>> at line 3 of Top-Level:
>> explain (sparql select * where{?a ?b ?c})
>> SQL> sparql explain(select * where{?a ?b ?c});
>> 
>> *** Error 37000: [Virtuoso Driver][Virtuoso Server]SQ074: Line 1: SP030: 
>> SPARQL compiler, line 1: syntax error at 'explain' before '('
>> at line 4 of Top-Level:
>> sparql explain(select * where{?a ?b ?c})
>> SQL> explain (select * where{?a ?b ?c});
>> 
>> *** Error 37000: [Virtuoso Driver][Virtuoso Server]SQ074: Line 1: syntax 
>> error at 'select' before '*'
>> at line 5 of Top-Level:
>> explain (select * where{?a ?b ?c})
>> 
>> 
>> 
>> On Tue, Nov 26, 2013 at 10:47 AM, Hugh Williams <hwilli...@openlinksw.com> 
>> wrote:
>> Hi Rose,
>> 
>> You can use the explain() function to obtain a query plan with v6 but it 
>> will not include the compilation time, see:
>>      
>>      
>> http://docs.openlinksw.com/virtuoso/databaseadmsrv.html#perfdiagqueryplans
>> 
>> 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 26 Nov 2013, at 01:55, Rose Beck <rosebeck...@gmail.com> wrote:
>> 
>>> Actually I do  not have admin privileges on the server which I am using, so 
>>> wont be able to upgrade to version 7. Therefore it will be really great if 
>>> there is a method by which I may do profiling  with virtuoso version 6.
>>> 
>>> 
>>> 
>>> 
>>> On Mon, Nov 25, 2013 at 5:33 PM, Rose Beck <rosebeck...@gmail.com> wrote:
>>> Thanks a lot for helping again.
>>> 
>>> Is there some way out by which I may do profiling with V6?
>>> 
>>> 
>>> On Mon, Nov 25, 2013 at 5:41 PM, Hugh Williams <hwilli...@openlinksw.com> 
>>> wrote:
>>> Hi Rose,
>>> 
>>> As you are runing v6 the profile function will not work it requires v7+ ...
>>> 
>>> The following shows simpler output with the compilation time being stated 
>>> at the end:
>>> 
>>> SQL> profile ('sparql select count(*) where {?s ?p ?o}');
>>> result
>>> LONG VARCHAR
>>> _______________________________________________________________________________
>>> 
>>> 287536      
>>> 
>>> { 
>>> time      0.11% fanout         1 input         1 rows
>>> time      0.08% fanout         1 input         1 rows
>>> { fork
>>> time     1e+02% fanout         0 input         1 rows
>>> RDF_QUAD   2.9e+05 rows()
>>>  
>>>  
>>> After code:
>>>       0:  sum callret-0 1 set no set_ctr
>>>       5: BReturn 0
>>> }
>>> time     0.046% fanout         0 input         1 rows
>>> Select (callret-0)
>>> }
>>> 
>>> 
>>>  4 msec 77% cpu,         1 rnd    287210 seq         0% same seg         0% 
>>> same pg 
>>> Compilation: 1 msec 0 reads         0% read 0 messages         0% clw
>>> 
>>> 4 Rows. -- 132 msec.
>>> SQL>
>>> 
>>> So compilation is 1ms and execution is 132msec
>>> 
>>> 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 25 Nov 2013, at 11:19, Rose Beck <rosebeck...@gmail.com> wrote:
>>> 
>>>> Dear Hugh,
>>>> 
>>>> Thanks a lot for the help.
>>>> I am using virtuoso version: Version 6.1.8-dev.3127-pthreads as of Aug 10 
>>>> 2013
>>>> Also I am unable to find the compilation and query execution time from the 
>>>> example result set given below. Can you please help me a bit with this.
>>>> {
>>>> -- In the below excerpt some lines are omitted. Comments are inline.
>>>> 
>>>> 
>>>> time   1.3e-06% fanout         1          1 rows in
>>>> 
>>>> s# 98 cluster outer seq start, set no <V $40 set_ctr in>   
>>>> save ctx:()
>>>> 
>>>> -- the section inside the fork is executed to the end 
>>>> -- before the section after the fork is started.
>>>> s# 161 Fork 42
>>>> { 
>>>> wait time   0.00012% of exec real time, fanout         0
>>>> 
>>>> -- The below introduces the 2 stage DFG which does most of the work.
>>>> s# 108   { Cluster location fragment 51 0 unordered
>>>>    Params: ()
>>>> Output: ()   
>>>> 
>>>> -- First partitioning step. Each of the 32 slices gets the 
>>>> -- identical plan to execute, this is a flood for all is this 
>>>> -- first step does not specify a partitioning key value.
>>>> 
>>>> time     8e-05% fanout         0          0 rows in
>>>> s# 115 Stage 1: Params: (<V $112 set_ctr in>)
>>>> 
>>>> -- This is the initial table scan. The operator is executed 
>>>> -- 32 times, once for each slice of data. 
>>>> 
>>>> time      0.33% fanout   3.1e+06         32 rows in
>>>> s# 121 from DB.DBA.ct_c by ct_c    1.7e+08 rows  
>>>> Key ct_c  ASC  (<V $28 a.k2 in>)
>>>>  [copies params]
>>>> vector param casts: <V $40 set_ctr in>-> <V $112 set_ctr in>
>>>>  
>>>> -- This is the second partitioning step, each of the rows of 
>>>> -- output of the previous is sent to the slice corresponding to K2.
>>>> 
>>>> time        31% fanout       0.9      2e+08 rows in
>>>> s# 131 Stage 2: Params: (<v $134 q_a.k2 S136 in>, <V $138 set_ctr in>)
>>>> 
>>>> -- This is the 2nd index lookup, by a.k2 = b.k1 There are two 
>>>> -- parameters given in the vector param cast section, the first 
>>>> -- is a.k2 and the second is the set number. This is constant 
>>>> -- since the query is run on a single row of input but if the 
>>>> -- query were run on multiple rows of input this would specify 
>>>> -- which row of input the a.k2 comes from so that this would be 
>>>> -- aggregated in the right place. Many aggregates can be produced 
>>>> -- in a single invocation with multiple rows of input.
>>>> 
>>>> time        68% fanout         0      2e+08 rows in
>>>> s# 144 from DB.DBA.ct_c by ct_c  unq         1 rows   
>>>> Key ct_c  ASC  ()
>>>>  inlined  k1 = <v $134 q_a.k2 S136 in>
>>>> vector param casts: <V $28 a.k2 in>-> <v $134 q_a.k2 S136 in>, <r $112 
>>>> set_ctr via  S121>-> <V $138 set_ctr in>
>>>>  
>>>>  
>>>> -- This is the aggregation.
>>>> 
>>>> After code:
>>>>       0:  sum <V $43 count i> 1 set no <r $138 set_ctr via  S144>
>>>>       5: BReturn 0
>>>>  
>>>> }
>>>> }
>>>> 
>>>> -- The below returns the aggregate to the client. The combining of 
>>>> -- aggregates from different slices is implicit in the for operator 
>>>> -- whenever this ends with a cluster location fragment.
>>>> 
>>>> time   5.4e-07% fanout         0          1 rows in
>>>> s# 164 Select (<V $43 count i>)
>>>>   set no: <V $40 set_ctr in>
>>>> }
>>>> 
>>>> 
>>>> 
>>>> On Mon, Nov 25, 2013 at 4:42 PM, Rose Beck <rosebeck...@gmail.com> wrote:
>>>> Dear Hugh,
>>>> 
>>>> Thanks a lot for the help. I tried to profile using profile but I am 
>>>> getting the following errors:
>>>> SQL> profile('sparql select ?a?b?c where{?a ?b ?c}');
>>>> 
>>>> *** Error 42001: [Virtuoso Driver][Virtuoso Server]SR185: Undefined 
>>>> procedure DB.DBA.profile.
>>>> at line 9 of Top-Level:
>>>> profile('sparql select ?a?b?c where{?a ?b ?c}')
>>>> SQL> sparql profile('select ?a?b?c where{?a ?b ?c}');
>>>> 
>>>> *** Error 37000: [Virtuoso Driver][Virtuoso Server]SQ074: Line 1: SP030: 
>>>> SPARQL compiler, line 1: syntax error at 'profile' before '('
>>>> at line 10 of Top-Level:
>>>> sparql profile('select ?a?b?c where{?a ?b ?c}')
>>>> 
>>>> 
>>>> 
>>>> On Mon, Nov 25, 2013 at 4:35 PM, Hugh Williams <hwilli...@openlinksw.com> 
>>>> wrote:
>>>> Hi Rose,
>>>> 
>>>> With Virtuoso 7 you can obtain the compilation (query plan) and query 
>>>> execution time of a query using the "profile" function as detailed at:
>>>> 
>>>>    
>>>> http://docs.openlinksw.com/virtuoso/databaseadmsrv.html#readingqueryprofile
>>>> 
>>>> You can also enable general query logging and profiling using the 
>>>> "prof_enable" function as detailed at:
>>>> 
>>>>    http://docs.openlinksw.com/virtuoso/databaseadmsrv.html#querylogging
>>>> 
>>>>    
>>>> 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 25 Nov 2013, at 09:15, Rose Beck <rosebeck...@gmail.com> wrote:
>>>> 
>>>>> After executing SPARQL queries in virtuoso using:
>>>>> 1. ./isql 1111 dba dba
>>>>> 2. And then firing the SPARQL query
>>>>> 
>>>>> After this virtuoso returns the query execution time. So does the 
>>>>> returned time include the plan generation time. If yes, is it possible to 
>>>>> find:
>>>>>  (plan generation time) and (time to retrieve the results after the plan 
>>>>> has already been generated by Virtuoso)?
>>>>> 
>>>>> I need to know these query times as I am benchmarking Virtuoso against 
>>>>> postgreSQL. With postgresql I am able to separately retrieve the query 
>>>>> execution time after the plan has been generated by postgresql using 
>>>>> \timing. It would be great if Virtuoso could  also give me the time it 
>>>>> takes to retrieve the results after the plan has been generated 
>>>>> separately  as that would help me take a one to one comparison.
>>>>> 
>>>>> I'll be really grateful to you for the guidance. 
>>>>> ------------------------------------------------------------------------------
>>>>> Shape the Mobile Experience: Free Subscription
>>>>> Software experts and developers: Be at the forefront of tech innovation.
>>>>> Intel(R) Software Adrenaline delivers strategic insight and game-changing 
>>>>> conversations that shape the rapidly evolving mobile landscape. Sign up 
>>>>> now. 
>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk_______________________________________________
>>>>> Virtuoso-users mailing list
>>>>> Virtuoso-users@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/virtuoso-users
>>>> 
>>>> 
>>>> 
>>> 
>>> 
>>> 
>>> ------------------------------------------------------------------------------
>>> Shape the Mobile Experience: Free Subscription
>>> Software experts and developers: Be at the forefront of tech innovation.
>>> Intel(R) Software Adrenaline delivers strategic insight and game-changing 
>>> conversations that shape the rapidly evolving mobile landscape. Sign up 
>>> now. 
>>> http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk_______________________________________________
>>> Virtuoso-users mailing list
>>> Virtuoso-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/virtuoso-users
>> 
>> 
> 
> 
> 
> ------------------------------------------------------------------------------
> Shape the Mobile Experience: Free Subscription
> Software experts and developers: Be at the forefront of tech innovation.
> Intel(R) Software Adrenaline delivers strategic insight and game-changing 
> conversations that shape the rapidly evolving mobile landscape. Sign up now. 
> http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk_______________________________________________
> Virtuoso-users mailing list
> Virtuoso-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/virtuoso-users

------------------------------------------------------------------------------
Shape the Mobile Experience: Free Subscription
Software experts and developers: Be at the forefront of tech innovation.
Intel(R) Software Adrenaline delivers strategic insight and game-changing 
conversations that shape the rapidly evolving mobile landscape. Sign up now. 
http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users

Reply via email to