forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: Lu, Huayi <luhuayi@huawei.com> Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
161 lines
38 KiB
HTML
161 lines
38 KiB
HTML
<a name="EN-US_TOPIC_0000001188163618"></a><a name="EN-US_TOPIC_0000001188163618"></a>
|
|
|
|
<h1 class="topictitle1">Case: Rewriting SQL Statements and Eliminating Prune Interference</h1>
|
|
<div id="body8662426"><p id="EN-US_TOPIC_0000001188163618__p292910270514">A filter criterion that contains the expression of partition key cannot be used for pruning. As a result, the query statement scans almost all data in the partitioned table.</p>
|
|
<div class="section" id="EN-US_TOPIC_0000001188163618__s7a2c15e5b62c44229ee61ecdb3ea0034"><h4 class="sectiontitle">Before Optimization</h4><p id="EN-US_TOPIC_0000001188163618__a60f2b70082c24ff38fe203c90d0943b7"><strong id="EN-US_TOPIC_0000001188163618__b1620114614584">t_ddw_f10_op_cust_asset_mon</strong> indicates the partitioned table. <strong id="EN-US_TOPIC_0000001188163618__b84562296591">year_mth</strong> indicates the partition key. This field is an integer consisting of the <strong id="EN-US_TOPIC_0000001188163618__b4319351811">year</strong> and <strong id="EN-US_TOPIC_0000001188163618__b8976896116">mth</strong> values.</p>
|
|
<p id="EN-US_TOPIC_0000001188163618__a7f97a9bb876b43eb89cd8e9faa73107b">The following figure shows the tested SQL statements.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188163618__s535ffdd6859444dab98a2f8c7e13f1e3"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span>
|
|
<span class="w"> </span><span class="k">count</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span>
|
|
<span class="k">FROM</span><span class="w"> </span><span class="n">t_ddw_f10_op_cust_asset_mon</span><span class="w"> </span><span class="n">b1</span>
|
|
<span class="k">WHERE</span><span class="w"> </span><span class="n">b1</span><span class="p">.</span><span class="n">year_mth</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">substr</span><span class="p">(</span><span class="s1">'20200722'</span><span class="p">,</span><span class="mi">1</span><span class="w"> </span><span class="p">,</span><span class="mi">6</span><span class="w"> </span><span class="p">)</span>
|
|
<span class="k">AND</span><span class="w"> </span><span class="n">b1</span><span class="p">.</span><span class="n">year_mth</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">>=</span><span class="w"> </span><span class="n">substr</span><span class="p">(</span><span class="s1">'20200722'</span><span class="p">,</span><span class="mi">1</span><span class="w"> </span><span class="p">,</span><span class="mi">6</span><span class="w"> </span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001188163618__a29f2ed3d20364e87ac6ae8dedb4cd379">The test result shows that the table scan of the SQL statement takes 10 seconds. The execution plan of the SQL statement is as follows.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188163618__screen86284610450"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
|
<span class="normal"> 2</span>
|
|
<span class="normal"> 3</span>
|
|
<span class="normal"> 4</span>
|
|
<span class="normal"> 5</span>
|
|
<span class="normal"> 6</span>
|
|
<span class="normal"> 7</span>
|
|
<span class="normal"> 8</span>
|
|
<span class="normal"> 9</span>
|
|
<span class="normal">10</span>
|
|
<span class="normal">11</span>
|
|
<span class="normal">12</span>
|
|
<span class="normal">13</span>
|
|
<span class="normal">14</span>
|
|
<span class="normal">15</span>
|
|
<span class="normal">16</span>
|
|
<span class="normal">17</span>
|
|
<span class="normal">18</span>
|
|
<span class="normal">19</span>
|
|
<span class="normal">20</span>
|
|
<span class="normal">21</span>
|
|
<span class="normal">22</span>
|
|
<span class="normal">23</span>
|
|
<span class="normal">24</span>
|
|
<span class="normal">25</span>
|
|
<span class="normal">26</span>
|
|
<span class="normal">27</span>
|
|
<span class="normal">28</span>
|
|
<span class="normal">29</span>
|
|
<span class="normal">30</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">EXPLAIN</span><span class="w"> </span><span class="p">(</span><span class="k">ANALYZE</span><span class="w"> </span><span class="k">ON</span><span class="p">,</span><span class="w"> </span><span class="k">VERBOSE</span><span class="w"> </span><span class="k">ON</span><span class="p">)</span>
|
|
<span class="k">SELECT</span>
|
|
<span class="w"> </span><span class="k">count</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
<span class="k">FROM</span><span class="w"> </span><span class="n">t_ddw_f10_op_cust_asset_mon</span><span class="w"> </span><span class="n">b1</span>
|
|
<span class="k">WHERE</span><span class="w"> </span><span class="n">b1</span><span class="p">.</span><span class="n">year_mth</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">substr</span><span class="p">(</span><span class="s1">'20200722'</span><span class="p">,</span><span class="mi">1</span><span class="w"> </span><span class="p">,</span><span class="mi">6</span><span class="w"> </span><span class="p">)</span>
|
|
<span class="k">AND</span><span class="w"> </span><span class="n">b1</span><span class="p">.</span><span class="n">year_mth</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">>=</span><span class="w"> </span><span class="k">cast</span><span class="p">(</span><span class="n">substr</span><span class="p">(</span><span class="s1">'20200722'</span><span class="p">,</span><span class="mi">1</span><span class="w"> </span><span class="p">,</span><span class="mi">6</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">int</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">QUERY</span><span class="w"> </span><span class="n">PLAN</span>
|
|
<span class="c1">-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span>
|
|
<span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">operation</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">A</span><span class="o">-</span><span class="k">time</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">A</span><span class="o">-</span><span class="k">rows</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">E</span><span class="o">-</span><span class="k">rows</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">E</span><span class="o">-</span><span class="k">distinct</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Peak</span><span class="w"> </span><span class="n">Memory</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">E</span><span class="o">-</span><span class="n">memory</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">A</span><span class="o">-</span><span class="n">width</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">E</span><span class="o">-</span><span class="n">width</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">E</span><span class="o">-</span><span class="n">costs</span>
|
|
<span class="w"> </span><span class="c1">----+-------------------------------------------------------------------------------+-----------------------+----------+----------+------------+--------------+----------+---------+---------+-----------</span>
|
|
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="k">Aggregate</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">10662</span><span class="p">.</span><span class="mi">260</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">32</span><span class="n">KB</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">8</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">593656</span><span class="p">.</span><span class="mi">42</span>
|
|
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">Streaming</span><span class="w"> </span><span class="p">(</span><span class="k">type</span><span class="p">:</span><span class="w"> </span><span class="n">GATHER</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">10662</span><span class="p">.</span><span class="mi">172</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">136</span><span class="n">KB</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">8</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">593656</span><span class="p">.</span><span class="mi">42</span>
|
|
<span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="k">Aggregate</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">9692</span><span class="p">.</span><span class="mi">785</span><span class="p">,</span><span class="w"> </span><span class="mi">10656</span><span class="p">.</span><span class="mi">068</span><span class="p">]</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">24</span><span class="n">KB</span><span class="p">,</span><span class="w"> </span><span class="mi">24</span><span class="n">KB</span><span class="p">]</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="n">MB</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">8</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">593646</span><span class="p">.</span><span class="mi">42</span>
|
|
<span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">Partition</span><span class="w"> </span><span class="n">Iterator</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">8787</span><span class="p">.</span><span class="mi">198</span><span class="p">,</span><span class="w"> </span><span class="mi">9629</span><span class="p">.</span><span class="mi">138</span><span class="p">]</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">16384000</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">32752850</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">16</span><span class="n">KB</span><span class="p">,</span><span class="w"> </span><span class="mi">16</span><span class="n">KB</span><span class="p">]</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="n">MB</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">573175</span><span class="p">.</span><span class="mi">88</span>
|
|
<span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">Partitioned</span><span class="w"> </span><span class="n">Seq</span><span class="w"> </span><span class="n">Scan</span><span class="w"> </span><span class="k">on</span><span class="w"> </span><span class="k">public</span><span class="p">.</span><span class="n">t_ddw_f10_op_cust_asset_mon</span><span class="w"> </span><span class="n">b1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">8365</span><span class="p">.</span><span class="mi">655</span><span class="p">,</span><span class="w"> </span><span class="mi">9152</span><span class="p">.</span><span class="mi">115</span><span class="p">]</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">16384000</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">32752850</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">32</span><span class="n">KB</span><span class="p">,</span><span class="w"> </span><span class="mi">32</span><span class="n">KB</span><span class="p">]</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="n">MB</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">573175</span><span class="p">.</span><span class="mi">88</span>
|
|
|
|
<span class="w"> </span><span class="k">SQL</span><span class="w"> </span><span class="n">Diagnostic</span><span class="w"> </span><span class="n">Information</span>
|
|
<span class="w"> </span><span class="c1">-------------------------------------------------------------------------------------------</span>
|
|
<span class="w"> </span><span class="n">Partitioned</span><span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="n">unprunable</span><span class="w"> </span><span class="n">Qual</span>
|
|
<span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="k">public</span><span class="p">.</span><span class="n">t_ddw_f10_op_cust_asset_mon</span><span class="w"> </span><span class="n">b1</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="k">left</span><span class="w"> </span><span class="n">side</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="n">expression</span><span class="w"> </span><span class="ss">"((year_mth + 1) > 202008)"</span><span class="w"> </span><span class="n">invokes</span><span class="w"> </span><span class="k">function</span><span class="o">-</span><span class="k">call</span><span class="o">/</span><span class="k">type</span><span class="o">-</span><span class="k">conversion</span>
|
|
|
|
<span class="w"> </span><span class="n">Predicate</span><span class="w"> </span><span class="n">Information</span><span class="w"> </span><span class="p">(</span><span class="n">identified</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="n">plan</span><span class="w"> </span><span class="n">id</span><span class="p">)</span>
|
|
<span class="w"> </span><span class="c1">----------------------------------------------------------------------------------</span>
|
|
<span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="c1">--Partition Iterator</span>
|
|
<span class="w"> </span><span class="n">Iterations</span><span class="p">:</span><span class="w"> </span><span class="mi">6</span>
|
|
<span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="c1">--Partitioned Seq Scan on public.t_ddw_f10_op_cust_asset_mon b1</span>
|
|
<span class="w"> </span><span class="n">Filter</span><span class="p">:</span><span class="w"> </span><span class="p">((</span><span class="n">b1</span><span class="p">.</span><span class="n">year_mth</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">202007</span><span class="p">::</span><span class="nb">bigint</span><span class="p">)</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="p">((</span><span class="n">b1</span><span class="p">.</span><span class="n">year_mth</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">>=</span><span class="w"> </span><span class="mi">202007</span><span class="p">))</span>
|
|
<span class="w"> </span><span class="k">Rows</span><span class="w"> </span><span class="n">Removed</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="n">Filter</span><span class="p">:</span><span class="w"> </span><span class="mi">81920000</span>
|
|
<span class="w"> </span><span class="n">Partitions</span><span class="w"> </span><span class="n">Selected</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="k">Static</span><span class="w"> </span><span class="n">Prune</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">..</span><span class="mi">6</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001188163618__sa74c0da8a2f94a2db7532449834054c5"><h4 class="sectiontitle">After Optimization</h4><p id="EN-US_TOPIC_0000001188163618__a39024b679136424b84eef919e234a7e1">After analyzing the execution plan of the statement and checking the SQL self-diagnosis information in the execution plan, the following diagnosis information is found:</p>
|
|
<pre class="screen" id="EN-US_TOPIC_0000001188163618__s4e019846ed964a83951dcb74940747a9"> SQL Diagnostic Information
|
|
------------------------------------------------------------------------------------------
|
|
Partitioned table unprunable Qual
|
|
table public.t_ddw_f10_op_cust_asset_mon b1:
|
|
left side of expression "((year_mth + 1) > 202008)" invokes function-call/type-conversion
|
|
</pre>
|
|
<p id="EN-US_TOPIC_0000001188163618__adc1210bd1635469a884d1141b86814a4">The filter criterion contains the expression <strong id="EN-US_TOPIC_0000001188163618__b115923181358">(year_mth + 1) > 202008</strong>. A filter criterion that contains the expression of partition key cannot be used for pruning. As a result, the query statement scans almost all data in the partitioned table.</p>
|
|
<p id="EN-US_TOPIC_0000001188163618__p128996852014">Compared with the original SQL statement, the expression <strong id="EN-US_TOPIC_0000001188163618__b2558034164410">(year_mth + 1) > 202008</strong> is derived from the expression <strong id="EN-US_TOPIC_0000001188163618__b10559133419449">b1.year_mth + 1 > substr('20200822',1 ,6 )</strong>. Based on the diagnosis information, the SQL statement is modified as follows.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188163618__s3e5df34987734a2783f3c2af954a1b35"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span>
|
|
<span class="w"> </span><span class="k">count</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span>
|
|
<span class="k">FROM</span><span class="w"> </span><span class="n">t_ddw_f10_op_cust_asset_mon</span><span class="w"> </span><span class="n">b1</span>
|
|
<span class="k">WHERE</span><span class="w"> </span><span class="n">b1</span><span class="p">.</span><span class="n">year_mth</span><span class="w"> </span><span class="o"><=</span><span class="w"> </span><span class="n">substr</span><span class="p">(</span><span class="s1">'20200822'</span><span class="p">,</span><span class="mi">1</span><span class="w"> </span><span class="p">,</span><span class="mi">6</span><span class="w"> </span><span class="p">)</span>
|
|
<span class="k">AND</span><span class="w"> </span><span class="n">b1</span><span class="p">.</span><span class="n">year_mth</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="k">cast</span><span class="p">(</span><span class="n">substr</span><span class="p">(</span><span class="s1">'20200822'</span><span class="p">,</span><span class="mi">1</span><span class="w"> </span><span class="p">,</span><span class="mi">6</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">int</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001188163618__ac978936e9cc54b26a5fc2a1335e81958">After the modification, the SQL statement execution information is as follows. The alarm indicating that the pruning is not performed is cleared. After the pruning, the score of the partition to be scanned is 1, and the execution time is shortened from 10 seconds to 3 seconds.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188163618__screen117191829145711"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
|
<span class="normal"> 2</span>
|
|
<span class="normal"> 3</span>
|
|
<span class="normal"> 4</span>
|
|
<span class="normal"> 5</span>
|
|
<span class="normal"> 6</span>
|
|
<span class="normal"> 7</span>
|
|
<span class="normal"> 8</span>
|
|
<span class="normal"> 9</span>
|
|
<span class="normal">10</span>
|
|
<span class="normal">11</span>
|
|
<span class="normal">12</span>
|
|
<span class="normal">13</span>
|
|
<span class="normal">14</span>
|
|
<span class="normal">15</span>
|
|
<span class="normal">16</span>
|
|
<span class="normal">17</span>
|
|
<span class="normal">18</span>
|
|
<span class="normal">19</span>
|
|
<span class="normal">20</span>
|
|
<span class="normal">21</span>
|
|
<span class="normal">22</span>
|
|
<span class="normal">23</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">EXPLAIN</span><span class="w"> </span><span class="p">(</span><span class="k">analyze</span><span class="w"> </span><span class="k">ON</span><span class="p">,</span><span class="w"> </span><span class="k">verbose</span><span class="w"> </span><span class="k">ON</span><span class="p">)</span>
|
|
<span class="k">SELECT</span>
|
|
<span class="w"> </span><span class="k">count</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
<span class="k">FROM</span><span class="w"> </span><span class="n">t_ddw_f10_op_cust_asset_mon</span><span class="w"> </span><span class="n">b1</span>
|
|
<span class="k">WHERE</span><span class="w"> </span><span class="n">b1</span><span class="p">.</span><span class="n">year_mth</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">substr</span><span class="p">(</span><span class="s1">'20200722'</span><span class="p">,</span><span class="mi">1</span><span class="w"> </span><span class="p">,</span><span class="mi">6</span><span class="w"> </span><span class="p">)</span>
|
|
<span class="k">AND</span><span class="w"> </span><span class="n">b1</span><span class="p">.</span><span class="n">year_mth</span><span class="w"> </span><span class="o">>=</span><span class="w"> </span><span class="k">cast</span><span class="p">(</span><span class="n">substr</span><span class="p">(</span><span class="s1">'20200722'</span><span class="p">,</span><span class="mi">1</span><span class="w"> </span><span class="p">,</span><span class="mi">6</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">int</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">QUERY</span><span class="w"> </span><span class="n">PLAN</span>
|
|
<span class="c1">----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span>
|
|
<span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">operation</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">A</span><span class="o">-</span><span class="k">time</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">A</span><span class="o">-</span><span class="k">rows</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">E</span><span class="o">-</span><span class="k">rows</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">E</span><span class="o">-</span><span class="k">distinct</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Peak</span><span class="w"> </span><span class="n">Memory</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">E</span><span class="o">-</span><span class="n">memory</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">A</span><span class="o">-</span><span class="n">width</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">E</span><span class="o">-</span><span class="n">width</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">E</span><span class="o">-</span><span class="n">costs</span>
|
|
<span class="w"> </span><span class="c1">----+-------------------------------------------------------------------------------+----------------------+----------+----------+------------+--------------+----------+---------+---------+-----------</span>
|
|
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="k">Aggregate</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3009</span><span class="p">.</span><span class="mi">796</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">32</span><span class="n">KB</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">8</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">501541</span><span class="p">.</span><span class="mi">70</span>
|
|
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">Streaming</span><span class="w"> </span><span class="p">(</span><span class="k">type</span><span class="p">:</span><span class="w"> </span><span class="n">GATHER</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3009</span><span class="p">.</span><span class="mi">718</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">136</span><span class="n">KB</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">8</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">501541</span><span class="p">.</span><span class="mi">70</span>
|
|
<span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="k">Aggregate</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">2675</span><span class="p">.</span><span class="mi">509</span><span class="p">,</span><span class="w"> </span><span class="mi">3003</span><span class="p">.</span><span class="mi">298</span><span class="p">]</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">24</span><span class="n">KB</span><span class="p">,</span><span class="w"> </span><span class="mi">24</span><span class="n">KB</span><span class="p">]</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="n">MB</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">8</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">501531</span><span class="p">.</span><span class="mi">70</span>
|
|
<span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">Partition</span><span class="w"> </span><span class="n">Iterator</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">1820</span><span class="p">.</span><span class="mi">725</span><span class="p">,</span><span class="w"> </span><span class="mi">2053</span><span class="p">.</span><span class="mi">836</span><span class="p">]</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">16384000</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">16380697</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">16</span><span class="n">KB</span><span class="p">,</span><span class="w"> </span><span class="mi">16</span><span class="n">KB</span><span class="p">]</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="n">MB</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">491293</span><span class="p">.</span><span class="mi">75</span>
|
|
<span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">Partitioned</span><span class="w"> </span><span class="n">Seq</span><span class="w"> </span><span class="n">Scan</span><span class="w"> </span><span class="k">on</span><span class="w"> </span><span class="k">public</span><span class="p">.</span><span class="n">t_ddw_f10_op_cust_asset_mon</span><span class="w"> </span><span class="n">b1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">1420</span><span class="p">.</span><span class="mi">972</span><span class="p">,</span><span class="w"> </span><span class="mi">1590</span><span class="p">.</span><span class="mi">083</span><span class="p">]</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">16384000</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">16380697</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">16</span><span class="n">KB</span><span class="p">,</span><span class="w"> </span><span class="mi">16</span><span class="n">KB</span><span class="p">]</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="n">MB</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">491293</span><span class="p">.</span><span class="mi">75</span>
|
|
|
|
<span class="w"> </span><span class="n">Predicate</span><span class="w"> </span><span class="n">Information</span><span class="w"> </span><span class="p">(</span><span class="n">identified</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="n">plan</span><span class="w"> </span><span class="n">id</span><span class="p">)</span>
|
|
<span class="w"> </span><span class="c1">----------------------------------------------------------------------------</span>
|
|
<span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="c1">--Partition Iterator</span>
|
|
<span class="w"> </span><span class="n">Iterations</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span>
|
|
<span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="c1">--Partitioned Seq Scan on public.t_ddw_f10_op_cust_asset_mon b1</span>
|
|
<span class="w"> </span><span class="n">Filter</span><span class="p">:</span><span class="w"> </span><span class="p">((</span><span class="n">b1</span><span class="p">.</span><span class="n">year_mth</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">202007</span><span class="p">::</span><span class="nb">bigint</span><span class="p">)</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="p">(</span><span class="n">b1</span><span class="p">.</span><span class="n">year_mth</span><span class="w"> </span><span class="o">>=</span><span class="w"> </span><span class="mi">202006</span><span class="p">))</span>
|
|
<span class="w"> </span><span class="n">Partitions</span><span class="w"> </span><span class="n">Selected</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="k">Static</span><span class="w"> </span><span class="n">Prune</span><span class="p">:</span><span class="w"> </span><span class="mi">6</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_04_0474.html">Optimization Cases</a></div>
|
|
</div>
|
|
</div>
|
|
|