Thanks a lot for your help thus far. I am really grateful to you for the
same. But is there some other way out?
On Tue, Nov 26, 2013 at 7:55 PM, Hugh Williams <hwilli...@openlinksw.com>wrote:
> Hi Rose,
>
> If you are repeat executing the same query multiple time then it will not
> be recompiled thus the time reported for subsequent runs of the same query
> is the query execution time ...
>
> 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 12:06, Rose Beck <rosebeck...@gmail.com> wrote:
>
> Sorry to drop another mail. Actually I have a deadline tomorrow (I am done
> with benchmarking other frameworks just Virtuoso is left) Is there some way
> out by which I may find the query execution time excluding the compilation
> time using version 6 of virtuoso?
>
>
> On Tue, Nov 26, 2013 at 11:21 AM, Rose Beck <rosebeck...@gmail.com> wrote:
>
>> Ok. Is it possible to obtain the query execution time excluding the
>> compilation time using version 6 of virtuoso?
>>
>> I think there is an execution time which virtuoso returns on normal query
>> execution. Can I obtain the query execution time by subtracting compilation
>> time from the execution time which virtuoso returns on normal query
>> execution?
>>
>>
>> On Tue, Nov 26, 2013 at 11:31 AM, Hugh Williams <hwilli...@openlinksw.com
>> > wrote:
>>
>>> 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
>>>
>>>
>>>
>>
>
>
------------------------------------------------------------------------------
Sponsored by Intel(R) XDK
Develop, test and display web and hybrid apps with a single code base.
Download it for free now!
http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk
_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users