Sorry for another mail. But just to confirm is the join used by the
query plan below some kind of loop join:

{
RDF_QUAD_POGS         4 rows(s_1_4_t1.S)
 P =  ##plays  ,  O =  #/Music
RDF_QUAD_POGS       0.8 rows(s_1_4_t0.S)
 inlined  P =  ##type  ,  O =  ##Musician  ,  S = s_1_4_t1.S
Distinct (s_1_4_t0.S)

After code:
      0: X :=  := artm s_1_4_t0.S
      4: BReturn 0
Subquery Select(X)

After code:
      0: X := Call __ro2sq (X)
      5: BReturn 0
Select (X)

On Thu, Jul 28, 2016 at 1:38 PM, Maria Jackson
<maria.jackson....@gmail.com> wrote:
> Dear All,
>
> Thank you very much for your response. However, I am not able to
> understand the meaning of "inlined", "rosq", "artm" in Virtuoso's
> query plans. For exposition my question contains small example query.
>
> Also how can I figure out which join algorithm is used by Virtuoso by
> looking at the output of explain?
>
> On Thu, Jul 28, 2016 at 11:50 AM, Maria Jackson
> <maria.jackson....@gmail.com> wrote:
>> I apologize for another mail, but I have a deadline tomorrow so I'll
>> greatly appreciate if you could please help with this a little.
>>
>> On Wed, Jul 27, 2016 at 9:45 PM, Maria Jackson
>> <maria.jackson....@gmail.com> wrote:
>>> I ran the following query on Virtuoso:
>>>
>>> [code]PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>>> SELECT DISTINCT ?X
>>> WHERE
>>> {?X rdf:type Musician .
>>> ?X rdf:plays <http://Music>}
>>> [/code]
>>>
>>> The output of "explain" of this query is:
>>> [code]{
>>> RDF_QUAD_POGS         4 rows(s_1_4_t1.S)
>>>  P =  ##plays  ,  O =  #/Music
>>> RDF_QUAD_POGS       0.8 rows(s_1_4_t0.S)
>>>  inlined  P =  ##type  ,  O =  ##Musician  ,  S = s_1_4_t1.S
>>> Distinct (s_1_4_t0.S)
>>>
>>> After code:
>>>       0: X :=  := artm s_1_4_t0.S
>>>       4: BReturn 0
>>> Subquery Select(X)
>>>
>>> After code:
>>>       0: X := Call __ro2sq (X)
>>>       5: BReturn 0
>>> Select (X)
>>> }
>>> [/code]
>>>
>>> Now I am unable to decipher the output of explain command. What do
>>> "ro2sq", "inlined" and "artm" mean? And which join algorithm (like
>>> Hash Join, Merge Join, Nested loop join, etc.) is Virtuoso using for
>>> this query? I need to understand Virtuoso's explain command in order
>>> to understand the reason for Virtuoso taking a long time to execute?

------------------------------------------------------------------------------
_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users

Reply via email to