forked from docs/doc-exports
Reviewed-by: Hasko, Vladimir <vladimir.hasko@t-systems.com> Co-authored-by: Lu, Huayi <luhuayi@huawei.com> Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
43 lines
8.6 KiB
HTML
43 lines
8.6 KiB
HTML
<a name="EN-US_TOPIC_0000001098654770"></a><a name="EN-US_TOPIC_0000001098654770"></a>
|
|
|
|
<h1 class="topictitle1">Case: Selecting an Appropriate Distribution Column</h1>
|
|
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001098654770__s09a806ad285240689c1c98c202dc3601"><h4 class="sectiontitle">Symptom</h4><p id="EN-US_TOPIC_0000001098654770__a3a98ea5d7a48446398eb580f7559de81">Tables are defined as follows:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098654770__sec220ae1ce81476b99b92f7e103a0a2a"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">t1</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="nb">int</span><span class="p">);</span><span class="w"></span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="nb">int</span><span class="p">);</span><span class="w"></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001098654770__abde8ed96e35c4671a2346c476110cbe7">The following query is executed:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098654770__s7edb136325df49fcba4a9aa20b3578b8"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">t1</span><span class="p">,</span><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">t1</span><span class="p">.</span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">t2</span><span class="p">.</span><span class="n">b</span><span class="p">;</span><span class="w"></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001098654770__s96f253e0910549c3b9b9eccbbf753a6e"><h4 class="sectiontitle">Optimization Analysis</h4><p id="EN-US_TOPIC_0000001098654770__af134e6ce4d62412fbbf513dd95e1dc16">If <strong id="EN-US_TOPIC_0000001098654770__b842352706144827">a</strong> is the distribution column of <strong id="EN-US_TOPIC_0000001098654770__b842352706144831">t1</strong> and <strong id="EN-US_TOPIC_0000001098654770__b842352706144834">t2</strong>:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098654770__s1e1bd363bc2547508d13bd8b14ae63c3"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">t1</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="nb">int</span><span class="p">)</span><span class="w"> </span><span class="n">DISTRIBUTE</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">HASH</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="p">);</span><span class="w"></span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="nb">int</span><span class="p">)</span><span class="w"> </span><span class="n">DISTRIBUTE</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">HASH</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="p">);</span><span class="w"></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001098654770__a94575852687f41218f9fef451517aa1e">Then <strong id="EN-US_TOPIC_0000001098654770__b842352706145958">Streaming</strong> exists in the execution plan and the data volume is heavy among DNs, as shown in <a href="#EN-US_TOPIC_0000001098654770__f5205d1152d7142eebcdc2eb0cee93030">Figure 1</a>.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001098654770__f5205d1152d7142eebcdc2eb0cee93030"><a name="EN-US_TOPIC_0000001098654770__f5205d1152d7142eebcdc2eb0cee93030"></a><a name="f5205d1152d7142eebcdc2eb0cee93030"></a><span class="figcap"><b>Figure 1 </b>Selecting an appropriate distribution column (1)</span><br><span><img id="EN-US_TOPIC_0000001098654770__i826a46f41dd44965aa7e4af12c31ec6b" src="figure/en-us_image_0000001099135110.png"></span></div>
|
|
<p id="EN-US_TOPIC_0000001098654770__af9c4e0db03e142a698005ad4f84b27ae">If <strong id="EN-US_TOPIC_0000001098654770__b84235270615432">a</strong> is the distribution column of <strong id="EN-US_TOPIC_0000001098654770__b84235270615450">t1</strong> and <strong id="EN-US_TOPIC_0000001098654770__b84235270615455">b</strong> is the distribution column of <strong id="EN-US_TOPIC_0000001098654770__b8423527061558">t2</strong>:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098654770__s5e9a8af917814899a0e73cdd44731a80"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">t1</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="nb">int</span><span class="p">)</span><span class="w"> </span><span class="n">DISTRIBUTE</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">HASH</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="p">);</span><span class="w"></span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="nb">int</span><span class="p">)</span><span class="w"> </span><span class="n">DISTRIBUTE</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">HASH</span><span class="w"> </span><span class="p">(</span><span class="n">b</span><span class="p">);</span><span class="w"></span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001098654770__a30e197c85c9d44d0be3f9e67238e07b1">Then <strong id="EN-US_TOPIC_0000001098654770__b68533958715618">Streaming</strong> does not exist in the execution plan, and the data volume among DNs is decreasing and the query performance is increasing, as shown in <a href="#EN-US_TOPIC_0000001098654770__ff0c933f80c044662b2ec539d8b3247b8">Figure 2</a>.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001098654770__ff0c933f80c044662b2ec539d8b3247b8"><a name="EN-US_TOPIC_0000001098654770__ff0c933f80c044662b2ec539d8b3247b8"></a><a name="ff0c933f80c044662b2ec539d8b3247b8"></a><span class="figcap"><b>Figure 2 </b>Selecting an appropriate distribution column (2)</span><br><span><img id="EN-US_TOPIC_0000001098654770__id8751a934833467c923becb5e5cfc6e2" src="figure/en-us_image_0000001098975124.png"></span></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>
|
|
|