On 2014-09-02 04:34, Hugh Williams wrote:
> Hi Bart,
>
> It would be interesting to see the compiler statistics for running this 
> sequence of queries which can be obtained by running the command:
>
>       exp_stat_to_file ('stat.dv');
>
> as detailed at:
>
>       
> http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtQueryOptDiagnostic
>
> which should show how the query plan changes when the 100th executions are 
> occurring and the query is taking seconds to complete.
>
> If you provide the exported "stats.dv" file this can be imported into a local 
> Virtuoso instance for analysis by development ...

Hello Hugh,

Sorry for the late reply, but we had some problems with our machines.

I tried to export the statistics with

   exp_stat_to_file ('stat.dv');

but that did not work:

SQL> exp_stat_to_file('stat.dv');
Connected to OpenLink Virtuoso
Driver: 07.10.3209 OpenLink Virtuoso ODBC Driver

*** Error 42001: [Virtuoso Driver][Virtuoso Server]SR185: Undefined 
procedure DB.DBA.exp_stat_to_file.
at line 1 of Top-Level:
exp_stat_to_file('stat.dv')

My version of Virtuoso is

Virtuoso Open Source Edition (Column Store) (multi threaded)
Version 7.1.1-dev.3209-pthreads as of May 27 2014
Compiled for Linux (x86_64-unknown-linux-gnu)

So I used the command

   string_to_file ('stat.dv', serialize(stat_export()), -2);

to export the statistics and that worked.  The resulting stat.dv file 
can be downloaded from

   https://dl.dropboxusercontent.com/u/32340538/stat.dv

The graph with the query timings is online at

   https://dl.dropboxusercontent.com/u/32340538/repeattest_with_union_b.png

The timing data itself is online at

   https://dl.dropboxusercontent.com/u/32340538/repeattest_with_union_b.dat

The experiment was the following: repeat a SPARQL query 1000 times (by 
sending 1000 HTTP curl requests containing a certain SPARQL query to 
Virtuoso) and time its execution (using time_total from curl).  As you 
can see, most of the time the query takes about 1 second to execute, but 
about every 100 query executions it takes much more: 4 to 8 seconds.

I am particularly interested in an explanation for this behavior.  Why 
do we see these 'peaks' of execution times ranging from 4 to 8 seconds? 
  Is Virtuoso itself causing this, or could there be an other 'external' 
factor that is causing this?  If there are other things I can test or 
monitor to find out, or you need more information, please let me know.

Kind regards,
Bart

------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&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