doc-exports/docs/dws/dev/dws_04_0449.html
Lu, Huayi ef0ada5a59 DWS DEV 20240716 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-11-02 09:07:47 +00:00

400 lines
53 KiB
HTML

<a name="EN-US_TOPIC_0000001578750674"></a><a name="EN-US_TOPIC_0000001578750674"></a>
<h1 class="topictitle1">Optimizing Statistics</h1>
<div id="body32001227"><div class="section" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_sc845b24ebeb84df7acace559ba5abdf0"><h4 class="sectiontitle">What Is Statistic Optimization</h4><p id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_a57288c7e28cb448592068f097abeee17"><span id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_text904630338">GaussDB(DWS)</span> generates optimal execution plans based on the cost estimation. Optimizers need to estimate the number of data rows and the cost based on statistics collected using <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b78901051411">ANALYZE</strong>. Therefore, the statistics is vital for the estimation of the number of rows and cost. Global statistics are collected using <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b84235270614359">ANALYZE</strong>: <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b84235270614450">relpages</strong> and <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b84235270614454">reltuples</strong> in the <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b84235270614447">pg_class</strong> table; <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b84235270614614">stadistinct</strong>, <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b84235270614618">stanullfrac</strong>, <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b84235270614623">stanumbersN</strong>, <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b84235270614627">stavaluesN</strong>, and <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b4311412914716">histogram_bounds</strong> in the <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b39562502414711">pg_statistic</strong> table.</p>
</div>
<div class="section" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_s18aa332df64b45669fa242aa0694c7c4"><h4 class="sectiontitle">Example 1: Poor Query Performance Due to the Lack of Statistics</h4><p id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_a01318fdcd25e451cab1941f522c74ab0">The query performance is often significantly impacted by the absence of statistics for tables or columns involved in the query.</p>
<p id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_a1cf228c8875244dc849ca8ef4aea6393">The structure of the example table is as follows:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_sb162cddbb7a444aca47f0631296d77b5"><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>
<span class="normal">31</span>
<span class="normal">32</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">LINEITEM</span>
<span class="p">(</span>
<span class="n">L_ORDERKEY</span><span class="w"> </span><span class="nb">BIGINT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">L_PARTKEY</span><span class="w"> </span><span class="nb">BIGINT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">L_SUPPKEY</span><span class="w"> </span><span class="nb">BIGINT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">L_LINENUMBER</span><span class="w"> </span><span class="nb">BIGINT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">L_QUANTITY</span><span class="w"> </span><span class="nb">DECIMAL</span><span class="p">(</span><span class="mi">15</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">L_EXTENDEDPRICE</span><span class="w"> </span><span class="nb">DECIMAL</span><span class="p">(</span><span class="mi">15</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">L_DISCOUNT</span><span class="w"> </span><span class="nb">DECIMAL</span><span class="p">(</span><span class="mi">15</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">L_TAX</span><span class="w"> </span><span class="nb">DECIMAL</span><span class="p">(</span><span class="mi">15</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">L_RETURNFLAG</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">L_LINESTATUS</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">L_SHIPDATE</span><span class="w"> </span><span class="nb">DATE</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">L_COMMITDATE</span><span class="w"> </span><span class="nb">DATE</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">L_RECEIPTDATE</span><span class="w"> </span><span class="nb">DATE</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">L_SHIPINSTRUCT</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="mi">25</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">L_SHIPMODE</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">L_COMMENT</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">44</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">)</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="p">(</span><span class="n">orientation</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">column</span><span class="p">,</span><span class="w"> </span><span class="n">COMPRESSION</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">MIDDLE</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="p">(</span><span class="n">L_ORDERKEY</span><span class="p">);</span>
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">ORDERS</span>
<span class="p">(</span>
<span class="n">O_ORDERKEY</span><span class="w"> </span><span class="nb">BIGINT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">O_CUSTKEY</span><span class="w"> </span><span class="nb">BIGINT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">O_ORDERSTATUS</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">O_TOTALPRICE</span><span class="w"> </span><span class="nb">DECIMAL</span><span class="p">(</span><span class="mi">15</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">O_ORDERDATE</span><span class="w"> </span><span class="nb">DATE</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">O_ORDERPRIORITY</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">O_CLERK</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">O_SHIPPRIORITY</span><span class="w"> </span><span class="nb">BIGINT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">,</span><span class="w"> </span><span class="n">O_COMMENT</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">79</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
<span class="p">)</span><span class="k">with</span><span class="w"> </span><span class="p">(</span><span class="n">orientation</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">column</span><span class="p">,</span><span class="w"> </span><span class="n">COMPRESSION</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">MIDDLE</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="p">(</span><span class="n">O_ORDERKEY</span><span class="p">);</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_a231aca831c8e47eaae0174c7695e1298">The query statements are as follows:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_s9ba28aaa870345af8fd79551680013ab"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">explain</span><span class="w"> </span><span class="k">verbose</span><span class="w"> </span><span class="k">select</span>
<span class="k">count</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">numwait</span><span class="w"> </span>
<span class="k">from</span>
<span class="n">lineitem</span><span class="w"> </span><span class="n">l1</span><span class="p">,</span>
<span class="n">orders</span><span class="w"> </span>
<span class="k">where</span>
<span class="n">o_orderkey</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">l1</span><span class="p">.</span><span class="n">l_orderkey</span>
<span class="k">and</span><span class="w"> </span><span class="n">o_orderstatus</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'F'</span>
<span class="k">and</span><span class="w"> </span><span class="n">l1</span><span class="p">.</span><span class="n">l_receiptdate</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">l1</span><span class="p">.</span><span class="n">l_commitdate</span>
<span class="k">and</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="k">exists</span><span class="w"> </span><span class="p">(</span>
<span class="k">select</span>
<span class="o">*</span>
<span class="k">from</span>
<span class="n">lineitem</span><span class="w"> </span><span class="n">l3</span>
<span class="k">where</span>
<span class="n">l3</span><span class="p">.</span><span class="n">l_orderkey</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">l1</span><span class="p">.</span><span class="n">l_orderkey</span>
<span class="k">and</span><span class="w"> </span><span class="n">l3</span><span class="p">.</span><span class="n">l_suppkey</span><span class="w"> </span><span class="o">&lt;&gt;</span><span class="w"> </span><span class="n">l1</span><span class="p">.</span><span class="n">l_suppkey</span>
<span class="k">and</span><span class="w"> </span><span class="n">l3</span><span class="p">.</span><span class="n">l_receiptdate</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">l3</span><span class="p">.</span><span class="n">l_commitdate</span>
<span class="p">)</span>
<span class="k">order</span><span class="w"> </span><span class="k">by</span>
<span class="n">numwait</span><span class="w"> </span><span class="k">desc</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_af746b5687e584258bf416cfc31645bfa">You can perform the following operations to check whether <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b13472135717100">ANALYZE</strong> has been executed on the tables or columns involved in the query to collect statistics.</p>
<ol id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_o0ec061b92a294aa29248ee9e58c80317"><li id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_l920bfae44f984205869bb7cb753a5682">Execute <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b665011501147">EXPLAIN VERBOSE</strong> to analyze the execution plan and check the warning information.<pre class="screen" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_sef3ca6253df74d95837d72cd6e36268f">WARNING:Statistics in some tables or columns(public.lineitem(l_receiptdate,l_commitdate,l_orderkey, l_suppkey), public.orders(o_orderstatus,o_orderkey)) are not collected.
HINT:Do analyze for them in order to generate optimized plan.</pre>
</li><li id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_l449e9ec39f86416d9a923babbc870f52">To determine if poor query performance was caused by a lack of statistics in certain tables or columns, check if the following information exists in the log file located in the <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b1943213341453">pg_log</strong> directory.<pre class="screen" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_s5cb3f95e9ca4426da01d814eb0788ecb">2017-06-14 17:28:30.336 CST 140644024579856 20971684 [BACKEND] LOG:Statistics in some tables or columns(public.lineitem(l_receiptdate, l_commitdate,l_orderkey,
.l_suppkey), public.orders(o_orderstatus,o_orderkey)) are not collected.
2017-06-14 17:28:30.336 CST 140644024579856 20971684 [BACKEND] HINT:Do analyze for them in order to generate optimized plan.</pre>
</li></ol>
<p id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_a86aa21d45388464e8ac947da93c32fe6">After confirming that <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b102648106913">ANALYZE</strong> has not been executed on the relevant tables or columns, you can execute <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b1733018194714">ANALYZE</strong> on the tables or columns reported in the WARNING or logs to resolve the issue of slow query performance due to a lack of statistics</p>
</div>
<div class="section" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_s1e06c9086d5c4776a6c005e51b908257"><h4 class="sectiontitle">Example 2: Setting <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b84235270614396">cost_param</strong> to Optimize Query Performance</h4><p id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_p18741849101613">For details, see <a href="dws_04_0479.html#EN-US_TOPIC_0000001579070006">Case: Configuring cost_param for Better Query Performance</a>.</p>
</div>
<div class="section" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_s433255e95572433aae126e26e676ac87"><h4 class="sectiontitle">Example 3: Optimization is Not Accurate When Intermediate Results Exist in the Query Where <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b842352706153044">JOIN</strong> Is Used for Multiple Tables</h4><p id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_adb1d94d430f943f7a61eac36f648e8e6"><strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_en-us_topic_0073253803_en-us_topic_0062578363_b5920464393549">Symptom</strong>: Query the personnel who have checked in an Internet cafe within 15 minutes before and after the check-in of a specified person.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_s7c132abe7bf04701832eeb9e40e7f8ab"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span>
<span class="k">C</span><span class="p">.</span><span class="n">WBM</span><span class="p">,</span>
<span class="k">C</span><span class="p">.</span><span class="n">DZQH</span><span class="p">,</span>
<span class="k">C</span><span class="p">.</span><span class="n">DZ</span><span class="p">,</span>
<span class="n">B</span><span class="p">.</span><span class="n">ZJHM</span><span class="p">,</span>
<span class="n">B</span><span class="p">.</span><span class="n">SWKSSJ</span><span class="p">,</span>
<span class="n">B</span><span class="p">.</span><span class="n">XWSJ</span>
<span class="k">FROM</span>
<span class="n">b_zyk_wbswxx</span><span class="w"> </span><span class="n">A</span><span class="p">,</span>
<span class="n">b_zyk_wbswxx</span><span class="w"> </span><span class="n">B</span><span class="p">,</span>
<span class="n">b_zyk_wbcs</span><span class="w"> </span><span class="k">C</span>
<span class="k">WHERE</span>
<span class="n">A</span><span class="p">.</span><span class="n">ZJHM</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'522522******3824'</span>
<span class="k">AND</span><span class="w"> </span><span class="n">A</span><span class="p">.</span><span class="n">WBDM</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">B</span><span class="p">.</span><span class="n">WBDM</span>
<span class="k">AND</span><span class="w"> </span><span class="n">A</span><span class="p">.</span><span class="n">WBDM</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">WBDM</span>
<span class="k">AND</span><span class="w"> </span><span class="k">abs</span><span class="p">(</span><span class="n">to_date</span><span class="p">(</span><span class="n">A</span><span class="p">.</span><span class="n">SWKSSJ</span><span class="p">,</span><span class="s1">'yyyymmddHH24MISS'</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">to_date</span><span class="p">(</span><span class="n">B</span><span class="p">.</span><span class="n">SWKSSJ</span><span class="p">,</span><span class="s1">'yyyymmddHH24MISS'</span><span class="p">))</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nb">INTERVAL</span><span class="w"> </span><span class="s1">'15 MINUTES'</span>
<span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span>
<span class="n">B</span><span class="p">.</span><span class="n">SWKSSJ</span><span class="p">,</span>
<span class="n">B</span><span class="p">.</span><span class="n">ZJHM</span>
<span class="k">limit</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="k">offset</span><span class="w"> </span><span class="mi">0</span>
<span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_aa775b68d228e44088dca206686069766"><a href="#EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_fb2e54654e9f945dbbfcb3347aa535169">Figure 1</a> shows the execution plan. This query takes about 12s.</p>
<div class="fignone" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_fb2e54654e9f945dbbfcb3347aa535169"><a name="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_fb2e54654e9f945dbbfcb3347aa535169"></a><a name="en-us_topic_0000001233563159_fb2e54654e9f945dbbfcb3347aa535169"></a><span class="figcap"><b>Figure 1 </b>Using an unlogged table (1)</span><br><span><img id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_i2974504ff208472fa396c4836412b381" src="figure/en-us_image_0000001233681839.png" height="263.570223" width="523.6875" title="Click to enlarge" class="imgResize"></span></div>
<p id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_a124e2a83711e46218b854db4cffe3848"></p>
<p id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_a869ef82a080d4ea58c9708089938c038"><strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_en-us_topic_0073253803_en-us_topic_0062578363_b1658455293558">Optimization analysis:</strong></p>
<ol id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_o238fd9b9e19b4385b3ca49389dcd0061"><li id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_l405c6f9c2d6348088fbdf9330d4e7f3b">In the execution plan, index scan is used for node scanning, the <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b842352706165034">Join Filter</strong> calculation in the external <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b842352706165042">NEST LOOP IN</strong> statement consumes most of the query time, and the calculation uses the string addition and subtraction, and unequal-value comparison.</li><li id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_lcedf314f5b8c4913b6f32794d3420803">Use an unlogged table to record the Internet access time of the specified person. The start time and end time are processed during data insertion, and this reduces subsequent addition and subtraction operations.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_sbbcc79f88a4f450e90d94ee380358497"><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>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span>
<span class="normal">34</span>
<span class="normal">35</span>
<span class="normal">36</span>
<span class="normal">37</span>
<span class="normal">38</span>
<span class="normal">39</span>
<span class="normal">40</span>
<span class="normal">41</span>
<span class="normal">42</span>
<span class="normal">43</span>
<span class="normal">44</span>
<span class="normal">45</span>
<span class="normal">46</span>
<span class="normal">47</span>
<span class="normal">48</span>
<span class="normal">49</span>
<span class="normal">50</span>
<span class="normal">51</span>
<span class="normal">52</span></pre></div></td><td class="code"><div><pre><span></span><span class="o">//</span><span class="k">Create</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="k">temporary</span><span class="w"> </span><span class="n">unlogged</span><span class="w"> </span><span class="k">table</span><span class="p">.</span>
<span class="k">CREATE</span><span class="w"> </span><span class="n">UNLOGGED</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">temp_tsw</span>
<span class="p">(</span>
<span class="n">ZJHM</span><span class="w"> </span><span class="n">NVARCHAR2</span><span class="p">(</span><span class="mi">18</span><span class="p">),</span>
<span class="n">WBDM</span><span class="w"> </span><span class="n">NVARCHAR2</span><span class="p">(</span><span class="mi">14</span><span class="p">),</span>
<span class="n">SWKSSJ_START</span><span class="w"> </span><span class="n">NVARCHAR2</span><span class="p">(</span><span class="mi">14</span><span class="p">),</span>
<span class="n">SWKSSJ_END</span><span class="w"> </span><span class="n">NVARCHAR2</span><span class="p">(</span><span class="mi">14</span><span class="p">),</span>
<span class="n">WBM</span><span class="w"> </span><span class="n">NVARCHAR2</span><span class="p">(</span><span class="mi">70</span><span class="p">),</span>
<span class="n">DZQH</span><span class="w"> </span><span class="n">NVARCHAR2</span><span class="p">(</span><span class="mi">6</span><span class="p">),</span>
<span class="n">DZ</span><span class="w"> </span><span class="n">NVARCHAR2</span><span class="p">(</span><span class="mi">70</span><span class="p">),</span>
<span class="n">IPDZ</span><span class="w"> </span><span class="n">NVARCHAR2</span><span class="p">(</span><span class="mi">39</span><span class="p">)</span>
<span class="p">)</span>
<span class="p">;</span>
<span class="o">//</span><span class="k">Insert</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">Internet</span><span class="w"> </span><span class="k">access</span><span class="w"> </span><span class="n">record</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">specified</span><span class="w"> </span><span class="n">person</span><span class="p">,</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="n">process</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="k">start</span><span class="w"> </span><span class="k">time</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="k">end</span><span class="w"> </span><span class="k">time</span><span class="p">.</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span>
<span class="n">temp_tsw</span>
<span class="k">SELECT</span>
<span class="n">A</span><span class="p">.</span><span class="n">ZJHM</span><span class="p">,</span>
<span class="n">A</span><span class="p">.</span><span class="n">WBDM</span><span class="p">,</span>
<span class="n">to_char</span><span class="p">((</span><span class="n">to_date</span><span class="p">(</span><span class="n">A</span><span class="p">.</span><span class="n">SWKSSJ</span><span class="p">,</span><span class="s1">'yyyymmddHH24MISS'</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nb">INTERVAL</span><span class="w"> </span><span class="s1">'15 MINUTES'</span><span class="p">),</span><span class="s1">'yyyymmddHH24MISS'</span><span class="p">),</span>
<span class="n">to_char</span><span class="p">((</span><span class="n">to_date</span><span class="p">(</span><span class="n">A</span><span class="p">.</span><span class="n">SWKSSJ</span><span class="p">,</span><span class="s1">'yyyymmddHH24MISS'</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nb">INTERVAL</span><span class="w"> </span><span class="s1">'15 MINUTES'</span><span class="p">),</span><span class="s1">'yyyymmddHH24MISS'</span><span class="p">),</span>
<span class="n">B</span><span class="p">.</span><span class="n">WBM</span><span class="p">,</span><span class="n">B</span><span class="p">.</span><span class="n">DZQH</span><span class="p">,</span><span class="n">B</span><span class="p">.</span><span class="n">DZ</span><span class="p">,</span><span class="n">B</span><span class="p">.</span><span class="n">IPDZ</span>
<span class="k">FROM</span>
<span class="n">b_zyk_wbswxx</span><span class="w"> </span><span class="n">A</span><span class="p">,</span>
<span class="n">b_zyk_wbcs</span><span class="w"> </span><span class="n">B</span>
<span class="k">WHERE</span>
<span class="n">A</span><span class="p">.</span><span class="n">ZJHM</span><span class="o">=</span><span class="s1">'522522******3824'</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">A</span><span class="p">.</span><span class="n">WBDM</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">B</span><span class="p">.</span><span class="n">WBDM</span>
<span class="p">;</span>
<span class="o">//</span><span class="n">Query</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">personnel</span><span class="w"> </span><span class="n">who</span><span class="w"> </span><span class="n">have</span><span class="w"> </span><span class="k">check</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">an</span><span class="w"> </span><span class="n">Internet</span><span class="w"> </span><span class="n">cafe</span><span class="w"> </span><span class="k">before</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="k">after</span><span class="w"> </span><span class="mi">15</span><span class="w"> </span><span class="n">minutes</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="k">check</span><span class="o">-</span><span class="k">in</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">specified</span><span class="w"> </span><span class="n">person</span><span class="p">.</span><span class="w"> </span><span class="k">Convert</span><span class="w"> </span><span class="n">their</span><span class="w"> </span><span class="n">ID</span><span class="w"> </span><span class="n">card</span><span class="w"> </span><span class="nb">number</span><span class="w"> </span><span class="n">format</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="nb">int8</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">comparison</span><span class="p">.</span>
<span class="k">SELECT</span>
<span class="n">A</span><span class="p">.</span><span class="n">WBM</span><span class="p">,</span>
<span class="n">A</span><span class="p">.</span><span class="n">DZQH</span><span class="p">,</span>
<span class="n">A</span><span class="p">.</span><span class="n">DZ</span><span class="p">,</span>
<span class="n">A</span><span class="p">.</span><span class="n">IPDZ</span><span class="p">,</span>
<span class="n">B</span><span class="p">.</span><span class="n">ZJHM</span><span class="p">,</span>
<span class="n">B</span><span class="p">.</span><span class="n">XM</span><span class="p">,</span>
<span class="n">to_date</span><span class="p">(</span><span class="n">B</span><span class="p">.</span><span class="n">SWKSSJ</span><span class="p">,</span><span class="s1">'yyyymmddHH24MISS'</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">SWKSSJ</span><span class="p">,</span>
<span class="n">to_date</span><span class="p">(</span><span class="n">B</span><span class="p">.</span><span class="n">XWSJ</span><span class="p">,</span><span class="s1">'yyyymmddHH24MISS'</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">XWSJ</span><span class="p">,</span>
<span class="n">B</span><span class="p">.</span><span class="n">SWZDH</span>
<span class="k">FROM</span><span class="w"> </span><span class="n">temp_tsw</span><span class="w"> </span><span class="n">A</span><span class="p">,</span>
<span class="n">b_zyk_wbswxx</span><span class="w"> </span><span class="n">B</span>
<span class="k">WHERE</span>
<span class="n">A</span><span class="p">.</span><span class="n">ZJHM</span><span class="w"> </span><span class="o">&lt;&gt;</span><span class="w"> </span><span class="n">B</span><span class="p">.</span><span class="n">ZJHM</span>
<span class="k">AND</span><span class="w"> </span><span class="n">A</span><span class="p">.</span><span class="n">WBDM</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">B</span><span class="p">.</span><span class="n">WBDM</span>
<span class="k">AND</span><span class="w"> </span><span class="p">(</span><span class="n">B</span><span class="p">.</span><span class="n">SWKSSJ</span><span class="p">)::</span><span class="nb">int8</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="p">(</span><span class="n">A</span><span class="p">.</span><span class="n">swkssj_start</span><span class="p">)::</span><span class="nb">int8</span>
<span class="k">AND</span><span class="w"> </span><span class="p">(</span><span class="n">B</span><span class="p">.</span><span class="n">SWKSSJ</span><span class="p">)::</span><span class="nb">int8</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="p">(</span><span class="n">A</span><span class="p">.</span><span class="n">swkssj_end</span><span class="p">)::</span><span class="nb">int8</span>
<span class="k">order</span><span class="w"> </span><span class="k">by</span>
<span class="n">B</span><span class="p">.</span><span class="n">SWKSSJ</span><span class="p">,</span>
<span class="n">B</span><span class="p">.</span><span class="n">ZJHM</span>
<span class="k">limit</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="k">offset</span><span class="w"> </span><span class="mi">0</span>
<span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p class="litext" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_aefff839518ce4d229dd9129f6a299edc">The query takes about 7s. <a href="#EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_f57ecd89cf73847d1a2183ccf0eed5a4e">Figure 2</a> shows the execution plan.</p>
<div class="fignone" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_f57ecd89cf73847d1a2183ccf0eed5a4e"><a name="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_f57ecd89cf73847d1a2183ccf0eed5a4e"></a><a name="en-us_topic_0000001233563159_f57ecd89cf73847d1a2183ccf0eed5a4e"></a><span class="figcap"><b>Figure 2 </b>Using an unlogged table (2)</span><br><span><img id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_idd07117815f6414482e701a08cb49abb" src="figure/en-us_image_0000001188323770.png" height="187.6560877990732" width="457.9607492065438" title="Click to enlarge" class="imgResize"></span></div>
</li><li id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_l2d76d42dbce645f999c13c1b89e48d2a">In the previous plan, <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b842352706165533">Hash Join</strong> has been executed, and a Hash table has been created for the large table <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b842352706152456">b_zyk_wbswxx</strong>. The table contains large amounts of data, so the creation takes long time.<p class="litext" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_a8d91590b49444e728e82013df01f8d5b"><strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b842352706152532">temp_tsw</strong> contains only hundreds of records, and an equal-value connection is created between <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b842352706152550">temp_tsw</strong> and <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b842352706152555">b_zyk_wbswxx</strong> using wbdm (the Internet cafe code). Therefore, if <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b842352706165643">JOIN</strong> is changed to <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b842352706165649">NEST LOOP JOIN</strong>, index scan can be used for node scanning, and the performance will be boosted.</p>
</li><li id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_lbdfab8f56c694d5cb188e7edee444409">Execute the following statement to change <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b842352706165712">JOIN</strong> to <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b842352706165716">NEST LOOP JOIN</strong>.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_s9806b71d8bb64694b1f11b5b7bd8d8b6"><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">SET</span><span class="w"> </span><span class="n">enable_hashjoin</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">off</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p class="litext" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_acec42ae628404f76ae202259184f57dd"><a href="#EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_f962ab19471574220b202823b708cecaf">Figure 3</a> shows the execution plan. The query takes about 3s.</p>
<div class="fignone" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_f962ab19471574220b202823b708cecaf"><a name="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_f962ab19471574220b202823b708cecaf"></a><a name="en-us_topic_0000001233563159_f962ab19471574220b202823b708cecaf"></a><span class="figcap"><b>Figure 3 </b>Using an unlogged table (3)</span><br><span><img id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_ic71682c676c34b8b8d6b05fd241a5bbb" src="figure/en-us_image_0000001188642238.png" height="165.51869888305689" width="450.87" title="Click to enlarge" class="imgResize"></span></div>
</li><li id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_l39f73c6079cc4b1db152709c53f13fdc">Save the query result set in the unlogged table for paging display.<p id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_ae68bc7f3ef5240e79249763b56fbe2d7"><a name="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_l39f73c6079cc4b1db152709c53f13fdc"></a><a name="en-us_topic_0000001233563159_l39f73c6079cc4b1db152709c53f13fdc"></a>If paging display needs to be achieved on the upper-layer application page, change the <strong id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_b84235270616619">offset</strong> value to determine the result set on the target page. In this way, the previous query statement will be executed every time after a page turning operation, which causes long response latency.</p>
<p id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_ae4623ca011664a41ac16be2daf6eca23">To resolve this problem, you are advised to use the unlogged table to save the result set.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_s848551ecb84b4d0d8919a5c7cf6118f7"><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>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span>
<span class="normal">34</span>
<span class="normal">35</span>
<span class="normal">36</span>
<span class="normal">37</span>
<span class="normal">38</span>
<span class="normal">39</span>
<span class="normal">40</span>
<span class="normal">41</span>
<span class="normal">42</span>
<span class="normal">43</span>
<span class="normal">44</span>
<span class="normal">45</span></pre></div></td><td class="code"><div><pre><span></span><span class="o">//</span><span class="k">Create</span><span class="w"> </span><span class="n">an</span><span class="w"> </span><span class="n">unlogged</span><span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">save</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="k">result</span><span class="w"> </span><span class="k">set</span><span class="p">.</span>
<span class="k">CREATE</span><span class="w"> </span><span class="n">UNLOGGED</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">temp_result</span>
<span class="p">(</span>
<span class="n">WBM</span><span class="w"> </span><span class="n">NVARCHAR2</span><span class="p">(</span><span class="mi">70</span><span class="p">),</span>
<span class="n">DZQH</span><span class="w"> </span><span class="n">NVARCHAR2</span><span class="p">(</span><span class="mi">6</span><span class="p">),</span>
<span class="n">DZ</span><span class="w"> </span><span class="n">NVARCHAR2</span><span class="p">(</span><span class="mi">70</span><span class="p">),</span>
<span class="n">IPDZ</span><span class="w"> </span><span class="n">NVARCHAR2</span><span class="p">(</span><span class="mi">39</span><span class="p">),</span>
<span class="n">ZJHM</span><span class="w"> </span><span class="n">NVARCHAR2</span><span class="p">(</span><span class="mi">18</span><span class="p">),</span>
<span class="n">XM</span><span class="w"> </span><span class="n">NVARCHAR2</span><span class="p">(</span><span class="mi">30</span><span class="p">),</span>
<span class="n">SWKSSJ</span><span class="w"> </span><span class="nb">date</span><span class="p">,</span>
<span class="n">XWSJ</span><span class="w"> </span><span class="nb">date</span><span class="p">,</span>
<span class="n">SWZDH</span><span class="w"> </span><span class="n">NVARCHAR2</span><span class="p">(</span><span class="mi">32</span><span class="p">)</span>
<span class="p">);</span>
<span class="o">//</span><span class="k">Insert</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="k">result</span><span class="w"> </span><span class="k">set</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">unlogged</span><span class="w"> </span><span class="k">table</span><span class="p">.</span><span class="w"> </span><span class="n">The</span><span class="w"> </span><span class="n">insertion</span><span class="w"> </span><span class="n">takes</span><span class="w"> </span><span class="n">about</span><span class="w"> </span><span class="mi">3</span><span class="n">s</span><span class="p">.</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span>
<span class="n">temp_result</span>
<span class="k">SELECT</span>
<span class="n">A</span><span class="p">.</span><span class="n">WBM</span><span class="p">,</span>
<span class="n">A</span><span class="p">.</span><span class="n">DZQH</span><span class="p">,</span>
<span class="n">A</span><span class="p">.</span><span class="n">DZ</span><span class="p">,</span>
<span class="n">A</span><span class="p">.</span><span class="n">IPDZ</span><span class="p">,</span>
<span class="n">B</span><span class="p">.</span><span class="n">ZJHM</span><span class="p">,</span>
<span class="n">B</span><span class="p">.</span><span class="n">XM</span><span class="p">,</span>
<span class="n">to_date</span><span class="p">(</span><span class="n">B</span><span class="p">.</span><span class="n">SWKSSJ</span><span class="p">,</span><span class="s1">'yyyymmddHH24MISS'</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">SWKSSJ</span><span class="p">,</span>
<span class="n">to_date</span><span class="p">(</span><span class="n">B</span><span class="p">.</span><span class="n">XWSJ</span><span class="p">,</span><span class="s1">'yyyymmddHH24MISS'</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">XWSJ</span><span class="p">,</span>
<span class="n">B</span><span class="p">.</span><span class="n">SWZDH</span>
<span class="k">FROM</span><span class="w"> </span><span class="n">temp_tsw</span><span class="w"> </span><span class="n">A</span><span class="p">,</span>
<span class="n">b_zyk_wbswxx</span><span class="w"> </span><span class="n">B</span>
<span class="k">WHERE</span>
<span class="n">A</span><span class="p">.</span><span class="n">ZJHM</span><span class="w"> </span><span class="o">&lt;&gt;</span><span class="w"> </span><span class="n">B</span><span class="p">.</span><span class="n">ZJHM</span>
<span class="k">AND</span><span class="w"> </span><span class="n">A</span><span class="p">.</span><span class="n">WBDM</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">B</span><span class="p">.</span><span class="n">WBDM</span>
<span class="k">AND</span><span class="w"> </span><span class="p">(</span><span class="n">B</span><span class="p">.</span><span class="n">SWKSSJ</span><span class="p">)::</span><span class="nb">int8</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="p">(</span><span class="n">A</span><span class="p">.</span><span class="n">swkssj_start</span><span class="p">)::</span><span class="nb">int8</span>
<span class="k">AND</span><span class="w"> </span><span class="p">(</span><span class="n">B</span><span class="p">.</span><span class="n">SWKSSJ</span><span class="p">)::</span><span class="nb">int8</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="p">(</span><span class="n">A</span><span class="p">.</span><span class="n">swkssj_end</span><span class="p">)::</span><span class="nb">int8</span>
<span class="p">;</span>
<span class="o">//</span><span class="n">Perform</span><span class="w"> </span><span class="n">paging</span><span class="w"> </span><span class="n">query</span><span class="w"> </span><span class="k">on</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="k">result</span><span class="w"> </span><span class="k">set</span><span class="p">.</span><span class="w"> </span><span class="n">The</span><span class="w"> </span><span class="n">paging</span><span class="w"> </span><span class="n">query</span><span class="w"> </span><span class="n">takes</span><span class="w"> </span><span class="n">about</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="n">ms</span><span class="p">.</span>
<span class="k">SELECT</span>
<span class="o">*</span>
<span class="k">FROM</span>
<span class="n">temp_result</span>
<span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span>
<span class="n">SWKSSJ</span><span class="p">,</span>
<span class="n">ZJHM</span>
<span class="k">LIMIT</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="k">OFFSET</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<div class="caution" id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_note1450964223914"><span class="cautiontitle"><img src="public_sys-resources/caution_3.0-en-us.png"> </span><div class="cautionbody"><p id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_p39259558263">Collecting global statistics using ANALYZE improves query performance.</p>
<p id="EN-US_TOPIC_0000001578750674__en-us_topic_0000001233563159_p185103422399">If a performance problem occurs, you can use plan hint to adjust the query plan to the previous one. For details, see <a href="dws_04_0454.html#EN-US_TOPIC_0000001578910050">Hint-based Tuning</a>.</p>
</div></div>
</li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_04_0445.html">Typical SQL Optimization Methods</a></div>
</div>
</div>
<script language="JavaScript">
<!--
image_size('.imgResize');
var msg_imageMax = "view original image";
var msg_imageClose = "close";
//--></script>