1
0
Fork 0
arangodb/Documentation/Examples/AQLEXP_07_explainSingleRule...

228 lines
13 KiB
Plaintext

arangosh&gt; stmt.explain({ optimizer: { rules: [ <span class="hljs-string">"-all"</span>, <span class="hljs-string">"+use-index-range"</span> ] } });
{
<span class="hljs-string">"plan"</span> : {
<span class="hljs-string">"nodes"</span> : [
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"SingletonNode"</span>,
<span class="hljs-string">"dependencies"</span> : [ ],
<span class="hljs-string">"id"</span> : <span class="hljs-number">1</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">1</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">1</span>
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"IndexRangeNode"</span>,
<span class="hljs-string">"dependencies"</span> : [
<span class="hljs-number">1</span>
],
<span class="hljs-string">"id"</span> : <span class="hljs-number">9</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">48</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">47</span>,
<span class="hljs-string">"database"</span> : <span class="hljs-string">"_system"</span>,
<span class="hljs-string">"collection"</span> : <span class="hljs-string">"test"</span>,
<span class="hljs-string">"outVariable"</span> : {
<span class="hljs-string">"id"</span> : <span class="hljs-number">0</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"i"</span>
},
<span class="hljs-string">"ranges"</span> : [
[
{
<span class="hljs-string">"variable"</span> : <span class="hljs-string">"i"</span>,
<span class="hljs-string">"attr"</span> : <span class="hljs-string">"value"</span>,
<span class="hljs-string">"lowConst"</span> : {
<span class="hljs-string">"bound"</span> : <span class="hljs-number">97</span>,
<span class="hljs-string">"include"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"isConstant"</span> : <span class="hljs-literal">true</span>
},
<span class="hljs-string">"highConst"</span> : {
<span class="hljs-string">"include"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"isConstant"</span> : <span class="hljs-literal">true</span>
},
<span class="hljs-string">"lows"</span> : [ ],
<span class="hljs-string">"highs"</span> : [ ],
<span class="hljs-string">"valid"</span> : <span class="hljs-literal">true</span>,
<span class="hljs-string">"equality"</span> : <span class="hljs-literal">false</span>
}
]
],
<span class="hljs-string">"index"</span> : {
<span class="hljs-string">"type"</span> : <span class="hljs-string">"skiplist"</span>,
<span class="hljs-string">"id"</span> : <span class="hljs-string">"502192583"</span>,
<span class="hljs-string">"unique"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"sparse"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"fields"</span> : [
<span class="hljs-string">"value"</span>
]
},
<span class="hljs-string">"reverse"</span> : <span class="hljs-literal">false</span>
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"CalculationNode"</span>,
<span class="hljs-string">"dependencies"</span> : [
<span class="hljs-number">9</span>
],
<span class="hljs-string">"id"</span> : <span class="hljs-number">3</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">95</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">47</span>,
<span class="hljs-string">"expression"</span> : {
<span class="hljs-string">"type"</span> : <span class="hljs-string">"compare &gt;"</span>,
<span class="hljs-string">"subNodes"</span> : [
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"attribute access"</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"value"</span>,
<span class="hljs-string">"subNodes"</span> : [
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"reference"</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"i"</span>,
<span class="hljs-string">"id"</span> : <span class="hljs-number">0</span>
}
]
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"value"</span>,
<span class="hljs-string">"value"</span> : <span class="hljs-number">97</span>
}
]
},
<span class="hljs-string">"outVariable"</span> : {
<span class="hljs-string">"id"</span> : <span class="hljs-number">2</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"1"</span>
},
<span class="hljs-string">"canThrow"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"expressionType"</span> : <span class="hljs-string">"simple"</span>
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"FilterNode"</span>,
<span class="hljs-string">"dependencies"</span> : [
<span class="hljs-number">3</span>
],
<span class="hljs-string">"id"</span> : <span class="hljs-number">4</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">142</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">47</span>,
<span class="hljs-string">"inVariable"</span> : {
<span class="hljs-string">"id"</span> : <span class="hljs-number">2</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"1"</span>
}
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"CalculationNode"</span>,
<span class="hljs-string">"dependencies"</span> : [
<span class="hljs-number">4</span>
],
<span class="hljs-string">"id"</span> : <span class="hljs-number">5</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">189</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">47</span>,
<span class="hljs-string">"expression"</span> : {
<span class="hljs-string">"type"</span> : <span class="hljs-string">"attribute access"</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"value"</span>,
<span class="hljs-string">"subNodes"</span> : [
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"reference"</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"i"</span>,
<span class="hljs-string">"id"</span> : <span class="hljs-number">0</span>
}
]
},
<span class="hljs-string">"outVariable"</span> : {
<span class="hljs-string">"id"</span> : <span class="hljs-number">4</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"3"</span>
},
<span class="hljs-string">"canThrow"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"expressionType"</span> : <span class="hljs-string">"attribute"</span>
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"SortNode"</span>,
<span class="hljs-string">"dependencies"</span> : [
<span class="hljs-number">5</span>
],
<span class="hljs-string">"id"</span> : <span class="hljs-number">6</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">369.95693728037276</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">47</span>,
<span class="hljs-string">"elements"</span> : [
{
<span class="hljs-string">"inVariable"</span> : {
<span class="hljs-string">"id"</span> : <span class="hljs-number">4</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"3"</span>
},
<span class="hljs-string">"ascending"</span> : <span class="hljs-literal">true</span>
}
],
<span class="hljs-string">"stable"</span> : <span class="hljs-literal">false</span>
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"CalculationNode"</span>,
<span class="hljs-string">"dependencies"</span> : [
<span class="hljs-number">6</span>
],
<span class="hljs-string">"id"</span> : <span class="hljs-number">7</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">416.95693728037276</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">47</span>,
<span class="hljs-string">"expression"</span> : {
<span class="hljs-string">"type"</span> : <span class="hljs-string">"attribute access"</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"value"</span>,
<span class="hljs-string">"subNodes"</span> : [
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"reference"</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"i"</span>,
<span class="hljs-string">"id"</span> : <span class="hljs-number">0</span>
}
]
},
<span class="hljs-string">"outVariable"</span> : {
<span class="hljs-string">"id"</span> : <span class="hljs-number">6</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"5"</span>
},
<span class="hljs-string">"canThrow"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"expressionType"</span> : <span class="hljs-string">"attribute"</span>
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"ReturnNode"</span>,
<span class="hljs-string">"dependencies"</span> : [
<span class="hljs-number">7</span>
],
<span class="hljs-string">"id"</span> : <span class="hljs-number">8</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">463.95693728037276</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">47</span>,
<span class="hljs-string">"inVariable"</span> : {
<span class="hljs-string">"id"</span> : <span class="hljs-number">6</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"5"</span>
}
}
],
<span class="hljs-string">"rules"</span> : [
<span class="hljs-string">"use-index-range"</span>
],
<span class="hljs-string">"collections"</span> : [
{
<span class="hljs-string">"name"</span> : <span class="hljs-string">"test"</span>,
<span class="hljs-string">"type"</span> : <span class="hljs-string">"read"</span>
}
],
<span class="hljs-string">"variables"</span> : [
{
<span class="hljs-string">"id"</span> : <span class="hljs-number">6</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"5"</span>
},
{
<span class="hljs-string">"id"</span> : <span class="hljs-number">4</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"3"</span>
},
{
<span class="hljs-string">"id"</span> : <span class="hljs-number">2</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"1"</span>
},
{
<span class="hljs-string">"id"</span> : <span class="hljs-number">0</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"i"</span>
}
],
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">463.95693728037276</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">47</span>
},
<span class="hljs-string">"warnings"</span> : [ ],
<span class="hljs-string">"stats"</span> : {
<span class="hljs-string">"rulesExecuted"</span> : <span class="hljs-number">1</span>,
<span class="hljs-string">"rulesSkipped"</span> : <span class="hljs-number">22</span>,
<span class="hljs-string">"plansCreated"</span> : <span class="hljs-number">1</span>
}
}