doc-exports/docs/dws/dev/dws_04_0805.html
Lu, Huayi e6fa411af0 DWS DEV 830.201 version
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>
2024-05-16 07:24:04 +00:00

132 lines
23 KiB
HTML

<a name="EN-US_TOPIC_0000001233563199"></a><a name="EN-US_TOPIC_0000001233563199"></a>
<h1 class="topictitle1">PGXC_GET_TABLE_SKEWNESS</h1>
<div id="body1547169602820"><p id="EN-US_TOPIC_0000001233563199__p8060118"><strong id="EN-US_TOPIC_0000001233563199__b13464201255510">PGXC_GET_TABLE_SKEWNESS</strong> displays the data skew on tables in the current database. Only the system administrator or the preset role <strong id="EN-US_TOPIC_0000001233563199__b61281945142518">gs_role_read_all_stats</strong> can access this view.</p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="EN-US_TOPIC_0000001233563199__t09d8e10f76724678a8f221dd29db736a" frame="border" border="1" rules="all"><caption><b>Table 1 </b>PGXC_GET_TABLE_SKEWNESS columns</caption><thead align="left"><tr id="EN-US_TOPIC_0000001233563199__r296db8ff4a4f4195b3fd7d935ac3436d"><th align="left" class="cellrowborder" valign="top" width="33.33%" id="mcps1.3.2.2.4.1.1"><p id="EN-US_TOPIC_0000001233563199__aabed0b68691942108b0e3aa157377da7">Name</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="20.919999999999998%" id="mcps1.3.2.2.4.1.2"><p id="EN-US_TOPIC_0000001233563199__aae8adcb14b634a4793c5c29a8ded37cd">Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="45.75%" id="mcps1.3.2.2.4.1.3"><p id="EN-US_TOPIC_0000001233563199__a4d5efd63bff341d59af7eb1359385af9">Description</p>
</th>
</tr>
</thead>
<tbody><tr id="EN-US_TOPIC_0000001233563199__r4058f6bdc9254911b191aa0e08d7edb6"><td class="cellrowborder" valign="top" width="33.33%" headers="mcps1.3.2.2.4.1.1 "><p id="EN-US_TOPIC_0000001233563199__p1160011111301">schemaname</p>
</td>
<td class="cellrowborder" valign="top" width="20.919999999999998%" headers="mcps1.3.2.2.4.1.2 "><p id="EN-US_TOPIC_0000001233563199__ac9c372b991894c798b9fecec1fe03ea8">name</p>
</td>
<td class="cellrowborder" valign="top" width="45.75%" headers="mcps1.3.2.2.4.1.3 "><p id="EN-US_TOPIC_0000001233563199__aa4d470d9917d4fedbce5cd58c754ce42">Schema name of a table</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001233563199__r9a69c15440fd4b3d86b38804ac7efffd"><td class="cellrowborder" valign="top" width="33.33%" headers="mcps1.3.2.2.4.1.1 "><p id="EN-US_TOPIC_0000001233563199__p155841225203011">tablename</p>
</td>
<td class="cellrowborder" valign="top" width="20.919999999999998%" headers="mcps1.3.2.2.4.1.2 "><p id="EN-US_TOPIC_0000001233563199__a6f502ef221ec4b8d8e5393022effc5bd">name</p>
</td>
<td class="cellrowborder" valign="top" width="45.75%" headers="mcps1.3.2.2.4.1.3 "><p id="EN-US_TOPIC_0000001233563199__a13de41723a05484d86ab3c303d4c522a">Name of a table</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001233563199__row1596942488"><td class="cellrowborder" valign="top" width="33.33%" headers="mcps1.3.2.2.4.1.1 "><p id="EN-US_TOPIC_0000001233563199__p897184184816">totalsize</p>
</td>
<td class="cellrowborder" valign="top" width="20.919999999999998%" headers="mcps1.3.2.2.4.1.2 "><p id="EN-US_TOPIC_0000001233563199__p89817484814">numeric</p>
</td>
<td class="cellrowborder" valign="top" width="45.75%" headers="mcps1.3.2.2.4.1.3 "><p id="EN-US_TOPIC_0000001233563199__p1099145484">Total size of a table, in bytes</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001233563199__r3b0439badf02493a9fc3a84029209848"><td class="cellrowborder" valign="top" width="33.33%" headers="mcps1.3.2.2.4.1.1 "><p id="EN-US_TOPIC_0000001233563199__p1219664054117">avgsize</p>
</td>
<td class="cellrowborder" valign="top" width="20.919999999999998%" headers="mcps1.3.2.2.4.1.2 "><p id="EN-US_TOPIC_0000001233563199__a32fd73348caf4482ad7acd39e5abfe13">numeric(1000,0)</p>
</td>
<td class="cellrowborder" valign="top" width="45.75%" headers="mcps1.3.2.2.4.1.3 "><p id="EN-US_TOPIC_0000001233563199__aca413da9e4ea45aba0d8b389dcf956ec">Average table size (total table size divided by the number of DNs), which is the ideal size of tables distributed on each DN</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001233563199__row204781949282"><td class="cellrowborder" valign="top" width="33.33%" headers="mcps1.3.2.2.4.1.1 "><p id="EN-US_TOPIC_0000001233563199__p194796491814">maxratio</p>
</td>
<td class="cellrowborder" valign="top" width="20.919999999999998%" headers="mcps1.3.2.2.4.1.2 "><p id="EN-US_TOPIC_0000001233563199__p3479124915820">numeric(10,3)</p>
</td>
<td class="cellrowborder" valign="top" width="45.75%" headers="mcps1.3.2.2.4.1.3 "><p id="EN-US_TOPIC_0000001233563199__p204793499820">Ratio of the maximum table size on a single DN to <strong id="EN-US_TOPIC_0000001233563199__b45507591561">avgsize</strong>.</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001233563199__row4302327154218"><td class="cellrowborder" valign="top" width="33.33%" headers="mcps1.3.2.2.4.1.1 "><p id="EN-US_TOPIC_0000001233563199__p14386104410421">minratio</p>
</td>
<td class="cellrowborder" valign="top" width="20.919999999999998%" headers="mcps1.3.2.2.4.1.2 "><p id="EN-US_TOPIC_0000001233563199__p173030279421">numeric(10,3)</p>
</td>
<td class="cellrowborder" valign="top" width="45.75%" headers="mcps1.3.2.2.4.1.3 "><p id="EN-US_TOPIC_0000001233563199__p74751749105714">Ratio of the minimum table size on a single DN to <strong id="EN-US_TOPIC_0000001233563199__b133831538718">avgsize</strong>.</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001233563199__row174687374424"><td class="cellrowborder" valign="top" width="33.33%" headers="mcps1.3.2.2.4.1.1 "><p id="EN-US_TOPIC_0000001233563199__p04691337114217">skewsize</p>
</td>
<td class="cellrowborder" valign="top" width="20.919999999999998%" headers="mcps1.3.2.2.4.1.2 "><p id="EN-US_TOPIC_0000001233563199__p20469133724219">bigint</p>
</td>
<td class="cellrowborder" valign="top" width="45.75%" headers="mcps1.3.2.2.4.1.3 "><p id="EN-US_TOPIC_0000001233563199__p872812665817">Table skew rate (the maximum table size on a single DN minus the minimum table size on a single DN)</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001233563199__row157104984219"><td class="cellrowborder" valign="top" width="33.33%" headers="mcps1.3.2.2.4.1.1 "><p id="EN-US_TOPIC_0000001233563199__p16874914210">skewratio</p>
</td>
<td class="cellrowborder" valign="top" width="20.919999999999998%" headers="mcps1.3.2.2.4.1.2 "><p id="EN-US_TOPIC_0000001233563199__p179134915423">numeric(10,3)</p>
</td>
<td class="cellrowborder" valign="top" width="45.75%" headers="mcps1.3.2.2.4.1.3 "><p id="EN-US_TOPIC_0000001233563199__p199174924217">Table skew rate (skewsize/avgsize)</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001233563199__row14389195612816"><td class="cellrowborder" valign="top" width="33.33%" headers="mcps1.3.2.2.4.1.1 "><p id="EN-US_TOPIC_0000001233563199__p1118111812436">skewstddev</p>
</td>
<td class="cellrowborder" valign="top" width="20.919999999999998%" headers="mcps1.3.2.2.4.1.2 "><p id="EN-US_TOPIC_0000001233563199__p1636555125610">numeric(1000,0)</p>
</td>
<td class="cellrowborder" valign="top" width="45.75%" headers="mcps1.3.2.2.4.1.3 "><p id="EN-US_TOPIC_0000001233563199__p14390856089">Standard deviation of table distribution (For two tables of the same size, a larger deviation indicates a more severe skew.)</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="EN-US_TOPIC_0000001233563199__section437315122410"><h4 class="sectiontitle">Examples</h4><p id="EN-US_TOPIC_0000001233563199__p53159131511">Run the following command to query the data skews of all tables in the database (the number of tables in the database is less than 10,000):</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233563199__screen671114170249"><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></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">pgxc_get_table_skewness</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">totalsize</span><span class="w"> </span><span class="k">DESC</span><span class="p">;</span>
<span class="w"> </span><span class="n">schemaname</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">tablename</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">totalsize</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">avgsize</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">maxratio</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">minratio</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">skewsize</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">skewratio</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">skewstddev</span>
<span class="c1">------------+-------------------------+-----------+---------+----------+----------+----------+-----------+------------</span>
<span class="w"> </span><span class="n">dbadmin</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">reason</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">147456</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">49152</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">333</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">333</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">0</span><span class="p">.</span><span class="mi">000</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span>
<span class="w"> </span><span class="n">tpcds</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">reason_t2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">73728</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">24576</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">556</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">000</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">40960</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">556</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">21674</span>
<span class="w"> </span><span class="n">dbadmin</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">reason_bk</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">65536</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">21845</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">500</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">000</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">32768</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">500</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">18919</span>
<span class="w"> </span><span class="n">tsearch</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">pgweb</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">49152</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">16384</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">333</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">333</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">0</span><span class="p">.</span><span class="mi">000</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span>
<span class="w"> </span><span class="n">dbadmin</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">student</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">40960</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">13653</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">400</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">200</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">8192</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">200</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">4730</span>
<span class="w"> </span><span class="n">tsearch</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">ts_zhparser</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">40960</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">13653</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">400</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">200</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">8192</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">200</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">4730</span>
<span class="w"> </span><span class="n">dbms_om</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">gs_wlm_session_info</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">24576</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">8192</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">333</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">333</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">0</span><span class="p">.</span><span class="mi">000</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span>
<span class="w"> </span><span class="n">dbms_om</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">gs_wlm_ec_operator_info</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">24576</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">8192</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">333</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">333</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">0</span><span class="p">.</span><span class="mi">000</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span>
<span class="w"> </span><span class="n">dbms_om</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">gs_wlm_operator_info</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">24576</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">8192</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">333</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">333</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">0</span><span class="p">.</span><span class="mi">000</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span>
<span class="p">(</span><span class="mi">9</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
<div class="p" id="EN-US_TOPIC_0000001233563199__p14593414101712">If the number of tables in the database is more than 10,000, do not use the <strong id="EN-US_TOPIC_0000001233563199__b5602942205">PGXC_GET_TABLE_SKEWNESS</strong> view because it takes a long time (hours) to query the entire database for skewed columns. You are advised to refer to the definition of the <strong id="EN-US_TOPIC_0000001233563199__b9609642901">PGXC_GET_TABLE_SKEWNESS</strong> view and use the <strong id="EN-US_TOPIC_0000001233563199__b56091042809">table_distribution()</strong> function to define the output. This optimizes the calculation by reducing the output columns. An example is shown as follows:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233563199__screen20871184055916"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">schemaname</span><span class="p">,</span><span class="n">tablename</span><span class="p">,</span><span class="k">max</span><span class="p">(</span><span class="n">dnsize</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">maxsize</span><span class="p">,</span><span class="w"> </span><span class="k">min</span><span class="p">(</span><span class="n">dnsize</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">minsize</span><span class="w"> </span>
<span class="k">FROM</span><span class="w"> </span><span class="n">pg_catalog</span><span class="p">.</span><span class="n">pg_class</span><span class="w"> </span><span class="k">c</span><span class="w"> </span>
<span class="k">INNER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">pg_catalog</span><span class="p">.</span><span class="n">pg_namespace</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">n</span><span class="p">.</span><span class="n">oid</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">c</span><span class="p">.</span><span class="n">relnamespace</span><span class="w"> </span>
<span class="k">INNER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">pg_catalog</span><span class="p">.</span><span class="n">table_distribution</span><span class="p">()</span><span class="w"> </span><span class="n">s</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">s</span><span class="p">.</span><span class="n">schemaname</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">n</span><span class="p">.</span><span class="n">nspname</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">s</span><span class="p">.</span><span class="n">tablename</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">c</span><span class="p">.</span><span class="n">relname</span><span class="w"> </span>
<span class="k">INNER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">pg_catalog</span><span class="p">.</span><span class="n">pgxc_class</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="k">c</span><span class="p">.</span><span class="n">oid</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">x</span><span class="p">.</span><span class="n">pcrelid</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">x</span><span class="p">.</span><span class="n">pclocatortype</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'H'</span><span class="w"> </span>
<span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">schemaname</span><span class="p">,</span><span class="n">tablename</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_04_0639.html">System Views</a></div>
</div>
</div>