<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Troubleshooting Bad Execution Plans</title>
	<atom:link href="http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/feed/" rel="self" type="application/rss+xml" />
	<link>http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/</link>
	<description>Oracle Database Performance And Scalability Blog</description>
	<lastBuildDate>Mon, 01 Mar 2010 22:11:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Managing Optimizer Statistics Paper &#124; Structured Data</title>
		<link>http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/comment-page-1/#comment-92</link>
		<dc:creator>Managing Optimizer Statistics Paper &#124; Structured Data</dc:creator>
		<pubDate>Mon, 16 Feb 2009 09:04:46 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/#comment-92</guid>
		<description>[...] Troubleshooting Bad Execution Plans [...]</description>
		<content:encoded><![CDATA[<p>[...] Troubleshooting Bad Execution Plans [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Rahn</title>
		<link>http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/comment-page-1/#comment-89</link>
		<dc:creator>Greg Rahn</dc:creator>
		<pubDate>Sun, 08 Feb 2009 06:55:05 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/#comment-89</guid>
		<description>@Hrishy

Thank you and I think that dissecting execution plans would make a great blog post.  I shall add that to my list of ideas.  Thanks again.</description>
		<content:encoded><![CDATA[<p>@Hrishy</p>
<p>Thank you and I think that dissecting execution plans would make a great blog post.  I shall add that to my list of ideas.  Thanks again.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hrishy</title>
		<link>http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/comment-page-1/#comment-88</link>
		<dc:creator>hrishy</dc:creator>
		<pubDate>Sun, 08 Feb 2009 05:24:48 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/#comment-88</guid>
		<description>Hi Greg

Wow you certainly are a great teacher .
was wondering if that dissection would be an item of your next blog under the heading troubleshooting bad execution plans by dissecting the joins one step at a time.

excellent piece of advise by the way.

regards
Hrishy</description>
		<content:encoded><![CDATA[<p>Hi Greg</p>
<p>Wow you certainly are a great teacher .<br />
was wondering if that dissection would be an item of your next blog under the heading troubleshooting bad execution plans by dissecting the joins one step at a time.</p>
<p>excellent piece of advise by the way.</p>
<p>regards<br />
Hrishy</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Rahn</title>
		<link>http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/comment-page-1/#comment-91</link>
		<dc:creator>Greg Rahn</dc:creator>
		<pubDate>Sun, 08 Feb 2009 00:41:16 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/#comment-91</guid>
		<description>@Hrishy

You can cancel a query and still call dbms_xplan.display_cursor(format=&gt;&#039;allstats last&#039;), and it will display the actual rows it returned &lt;em&gt;&lt;strong&gt;thus far&lt;/strong&gt;&lt;/em&gt; for the row sources that have been executed &lt;em&gt;&lt;strong&gt;thus far&lt;/strong&gt;&lt;/em&gt;, but I&#039;m not certain this will be of much use.  I would liken it to trying to find out how many rows a query returns without actually running the query.  A database does not know how many rows will be returned until there are no more rows to be fetched.

What I would recommend in your case is to break the query into bite size chunks.  Start with single table predicates and validate the estimates are reasonable.  Then start with a 2 table join, validating the cardinality again.  Add one more table, and validate again.  Keep doing this until you find the join where the cardinality estimates go wrong.

Hope that helps.</description>
		<content:encoded><![CDATA[<p>@Hrishy</p>
<p>You can cancel a query and still call dbms_xplan.display_cursor(format=&gt;&#8217;allstats last&#8217;), and it will display the actual rows it returned <em><strong>thus far</strong></em> for the row sources that have been executed <em><strong>thus far</strong></em>, but I&#8217;m not certain this will be of much use.  I would liken it to trying to find out how many rows a query returns without actually running the query.  A database does not know how many rows will be returned until there are no more rows to be fetched.</p>
<p>What I would recommend in your case is to break the query into bite size chunks.  Start with single table predicates and validate the estimates are reasonable.  Then start with a 2 table join, validating the cardinality again.  Add one more table, and validate again.  Keep doing this until you find the join where the cardinality estimates go wrong.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hrishy</title>
		<link>http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/comment-page-1/#comment-90</link>
		<dc:creator>hrishy</dc:creator>
		<pubDate>Sat, 07 Feb 2009 17:48:09 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/#comment-90</guid>
		<description>Hi Greg

I notice that the gather_plan_statistics hint that you use to have look at the actual and estimated cardinality requires that the sql run to completion and only then the call to the dbms_xplan.display_cursor is made .

If my query takes an hour or so and i am one of those impatient types would it be possible for me to do a control +C on the query and then make a call to the dbms_xplan.display_cursor to reveal the estimated and actual cardinalities .(don&#039;t have accesses to oracle at the moment so i am not able to verify this)or is their any other method


regards
Hrishy</description>
		<content:encoded><![CDATA[<p>Hi Greg</p>
<p>I notice that the gather_plan_statistics hint that you use to have look at the actual and estimated cardinality requires that the sql run to completion and only then the call to the dbms_xplan.display_cursor is made .</p>
<p>If my query takes an hour or so and i am one of those impatient types would it be possible for me to do a control +C on the query and then make a call to the dbms_xplan.display_cursor to reveal the estimated and actual cardinalities .(don&#8217;t have accesses to oracle at the moment so i am not able to verify this)or is their any other method</p>
<p>regards<br />
Hrishy</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DBMS_STATS, METHOD_OPT and FOR ALL INDEXED COLUMNS &#124; Structured Data</title>
		<link>http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/comment-page-1/#comment-72</link>
		<dc:creator>DBMS_STATS, METHOD_OPT and FOR ALL INDEXED COLUMNS &#124; Structured Data</dc:creator>
		<pubDate>Tue, 14 Oct 2008 15:51:54 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/#comment-72</guid>
		<description>[...] where to find column statistics is vital for troubleshooting bad execution plans. These views will be the arrows in your [...]</description>
		<content:encoded><![CDATA[<p>[...] where to find column statistics is vital for troubleshooting bad execution plans. These views will be the arrows in your [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: OracleFromFrance</title>
		<link>http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/comment-page-1/#comment-87</link>
		<dc:creator>OracleFromFrance</dc:creator>
		<pubDate>Fri, 03 Oct 2008 09:40:40 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/#comment-87</guid>
		<description>Hi,
I have the following Question:
Can you give us a good link or document explain the meaning of the &quot;&#124;Starts&#124;&quot; column:
---------------------------------------------------------------------------------------------------------------------------------------------------------------
&#124; Id  &#124; Operation                                   &#124; Name                       &#124; Starts &#124; E-Rows &#124; A-Rows &#124;   A-Time   &#124; Buffers &#124;  OMem &#124;  1Mem &#124; Used-Mem &#124;
---------------------------------------------------------------------------------------------------------------------------------------------------------------</description>
		<content:encoded><![CDATA[<p>Hi,<br />
I have the following Question:<br />
Can you give us a good link or document explain the meaning of the &#8220;|Starts|&#8221; column:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
| Id  | Operation                                   | Name                       | Starts | E-Rows | A-Rows |   A-Time   | Buffers |  OMem |  1Mem | Used-Mem |<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kyle Hailey</title>
		<link>http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/comment-page-1/#comment-78</link>
		<dc:creator>Kyle Hailey</dc:creator>
		<pubDate>Thu, 04 Sep 2008 00:38:44 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/#comment-78</guid>
		<description>Just to be a little clearer, here is the standard output
&lt;pre&gt;
-----------------------------------------------------------------------------------
&#124; Id  &#124; Operation                    &#124; Name            &#124; Starts &#124; E-Rows &#124; A-Rows &#124;
-----------------------------------------------------------------------------------
&#124;   1 &#124;  SORT AGGREGATE              &#124;                 &#124;      1 &#124;      1 &#124;      1 &#124;
&#124;*  2 &#124;   TABLE ACCESS BY INDEX ROWID&#124; WB_JOB          &#124;      1 &#124;      1 &#124;   1657 &#124;
&#124;   3 &#124;    NESTED LOOPS              &#124;                 &#124;      1 &#124;      1 &#124;  46346 &#124;
&#124;*  4 &#124;     HASH JOIN                &#124;                 &#124;      1 &#124;      1 &#124;  23171 &#124;
&#124;*  5 &#124;      INDEX RANGE SCAN        &#124; PS0PAY_CALENDAR &#124;      1 &#124;      1 &#124;      1 &#124;
&#124;   6 &#124;      VIEW                    &#124; VW_SQ_1         &#124;      1 &#124;   1925 &#124;  23171 &#124;
&#124;   7 &#124;       HASH GROUP BY          &#124;                 &#124;      1 &#124;   1925 &#124;  23171 &#124;
&#124;   8 &#124;        NESTED LOOPS          &#124;                 &#124;      1 &#124;   1925 &#124;  33020 &#124;
&#124;*  9 &#124;         INDEX RANGE SCAN     &#124; PS0PAY_CALENDAR &#124;      1 &#124;      1 &#124;      1 &#124;
&#124;* 10 &#124;         INDEX FAST FULL SCAN &#124; WB_JOB          &#124;      1 &#124;   2000 &#124;  33020 &#124;
&#124;* 11 &#124;     INDEX RANGE SCAN         &#124; WB_JOB          &#124;  23171 &#124;      1 &#124;  23174 &#124;
-----------------------------------------------------------------------------------

Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
   1 - SEL$11A0A147
   2 - SEL$11A0A147 / B@SEL$2
   5 - SEL$11A0A147 / A@SEL$2
   6 - SEL$975CABD1 / VW_SQ_1@SEL$5D2EE882
   7 - SEL$975CABD1
   9 - SEL$975CABD1 / A@SEL$D5F10F0C
  10 - SEL$975CABD1 / F@SEL$3
  11 - SEL$11A0A147 / B@SEL$2
&lt;/pre&gt;
There are only 2 query blocks:
   1 - SEL$11A0A147
   7 - SEL$975CABD1

Query block ID=1 should have a cardinality of 1657 but says 1 so I&#039;ll put in the hint
   cardinality(SEL$11A0A147 1657
Query block at ID=7 should have a cardinality of 23171 but is esitmated at 1925 so I add the hint
   cardinality(SEL$975CABD1 23171)
but after adding the hint the query plan and statistics are exactly the same</description>
		<content:encoded><![CDATA[<p>Just to be a little clearer, here is the standard output</p>
<pre>
-----------------------------------------------------------------------------------
| Id  | Operation                    | Name            | Starts | E-Rows | A-Rows |
-----------------------------------------------------------------------------------
|   1 |  SORT AGGREGATE              |                 |      1 |      1 |      1 |
|*  2 |   TABLE ACCESS BY INDEX ROWID| WB_JOB          |      1 |      1 |   1657 |
|   3 |    NESTED LOOPS              |                 |      1 |      1 |  46346 |
|*  4 |     HASH JOIN                |                 |      1 |      1 |  23171 |
|*  5 |      INDEX RANGE SCAN        | PS0PAY_CALENDAR |      1 |      1 |      1 |
|   6 |      VIEW                    | VW_SQ_1         |      1 |   1925 |  23171 |
|   7 |       HASH GROUP BY          |                 |      1 |   1925 |  23171 |
|   8 |        NESTED LOOPS          |                 |      1 |   1925 |  33020 |
|*  9 |         INDEX RANGE SCAN     | PS0PAY_CALENDAR |      1 |      1 |      1 |
|* 10 |         INDEX FAST FULL SCAN | WB_JOB          |      1 |   2000 |  33020 |
|* 11 |     INDEX RANGE SCAN         | WB_JOB          |  23171 |      1 |  23174 |
-----------------------------------------------------------------------------------

Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
   1 - SEL$11A0A147
   2 - SEL$11A0A147 / B@SEL$2
   5 - SEL$11A0A147 / A@SEL$2
   6 - SEL$975CABD1 / VW_SQ_1@SEL$5D2EE882
   7 - SEL$975CABD1
   9 - SEL$975CABD1 / A@SEL$D5F10F0C
  10 - SEL$975CABD1 / F@SEL$3
  11 - SEL$11A0A147 / B@SEL$2
</pre>
<p>There are only 2 query blocks:<br />
   1 &#8211; SEL$11A0A147<br />
   7 &#8211; SEL$975CABD1</p>
<p>Query block ID=1 should have a cardinality of 1657 but says 1 so I&#8217;ll put in the hint<br />
   cardinality(SEL$11A0A147 1657<br />
Query block at ID=7 should have a cardinality of 23171 but is esitmated at 1925 so I add the hint<br />
   cardinality(SEL$975CABD1 23171)<br />
but after adding the hint the query plan and statistics are exactly the same</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kyle Hailey</title>
		<link>http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/comment-page-1/#comment-80</link>
		<dc:creator>Kyle Hailey</dc:creator>
		<pubDate>Wed, 03 Sep 2008 21:55:26 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/#comment-80</guid>
		<description>forgot to give the plan with hints (this is for the last explain plan)
&lt;pre&gt;
SELECT
      /*+
       cardinality(SEL$11A0A147  1)
       cardinality(SEL$975CABD1  23171)
	 */
    A.COMPANY
  , A.PAYGROUP
from  PS_PAY_CALENDAR A
    , WB_JOB B
where A.RUN_ID = &#039;PD2&#039;
  and A.PAY_CONFIRM_RUN = &#039;N&#039;
  and B.COMPANY = A.COMPANY
  and B.PAYGROUP = A.PAYGROUP
  and B.EFFDT = (
	 SELECT
	 MAX(F.EFFDT)
      from WB_JOB F
      where F.EMPLID = B.EMPLID
        and F.EMPL_RCD# = B.EMPL_RCD#
        and F.EFFDT&lt; = A.PAY_END_DT)
)
&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>forgot to give the plan with hints (this is for the last explain plan)</p>
<pre>
SELECT
      /*+
       cardinality(SEL$11A0A147  1)
       cardinality(SEL$975CABD1  23171)
	 */
    A.COMPANY
  , A.PAYGROUP
from  PS_PAY_CALENDAR A
    , WB_JOB B
where A.RUN_ID = 'PD2'
  and A.PAY_CONFIRM_RUN = 'N'
  and B.COMPANY = A.COMPANY
  and B.PAYGROUP = A.PAYGROUP
  and B.EFFDT = (
	 SELECT
	 MAX(F.EFFDT)
      from WB_JOB F
      where F.EMPLID = B.EMPLID
        and F.EMPL_RCD# = B.EMPL_RCD#
        and F.EFFDT&lt; = A.PAY_END_DT)
)
</pre>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kyle Hailey</title>
		<link>http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/comment-page-1/#comment-73</link>
		<dc:creator>Kyle Hailey</dc:creator>
		<pubDate>Wed, 03 Sep 2008 21:53:58 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/2007/11/21/troubleshooting-bad-execution-plans/#comment-73</guid>
		<description>very cool, but alias doesn&#039;t seem to do much for me. Here is the plan with aliases (cool feature)
&lt;pre&gt;
----------------------------------------------------------------
&#124; Id  &#124; Operation                    &#124; Name            &#124; Rows  &#124;
----------------------------------------------------------------
&#124;   0 &#124; SELECT STATEMENT             &#124;                 &#124;       &#124;
&#124;   1 &#124;  SORT AGGREGATE              &#124;                 &#124;     1 &#124;  SEL$11A0A147
&#124;*  2 &#124;   TABLE ACCESS BY INDEX ROWID&#124; WB_JOB          &#124;     1 &#124;  SEL$11A0A147 / B@SEL$2
&#124;   3 &#124;    NESTED LOOPS              &#124;                 &#124;     1 &#124;
&#124;*  4 &#124;     HASH JOIN                &#124;                 &#124;    10 &#124;
&#124;*  5 &#124;      INDEX RANGE SCAN        &#124; PS0PAY_CALENDAR &#124;     1 &#124;  SEL$11A0A147 / A@SEL$2
&#124;   6 &#124;      VIEW                    &#124; VW_SQ_1         &#124; 23171 &#124;  SEL$975CABD1 / VW_SQ_1@SEL$5D2EE882
&#124;   7 &#124;       HASH GROUP BY          &#124;                 &#124; 23171 &#124;  SEL$975CABD1
&#124;   8 &#124;        NESTED LOOPS          &#124;                 &#124;  1925 &#124;
&#124;*  9 &#124;         INDEX RANGE SCAN     &#124; PS0PAY_CALENDAR &#124;     1 &#124;  SEL$975CABD1 / A@SEL$D5F10F0C
&#124;* 10 &#124;         INDEX FAST FULL SCAN &#124; WB_JOB          &#124;  2000 &#124;  SEL$975CABD1 / F@SEL$3
&#124;* 11 &#124;     INDEX RANGE SCAN         &#124; WB_JOB          &#124;     1 &#124;  SEL$11A0A147 / B@SEL$2
&lt;/pre&gt;
but the it doesn&#039;t seem to affect the estimated cardinalities
&lt;pre&gt;
 ID     STARTS     E_ROWS     A_ROWS      RATIO RATIO_G    operation
--- ---------- ---------- ---------- ---------- ---------- -----------------------------------------
  0                                                        SELECT STATEMENT ~
  1          1          1          1          1             SORT ~ AGGREGATE
  2          1          1       1657      .0006 6---         TABLE ACCESS ~ BY INDEX ROWID WB_JOB
  3          1          1      46346          0 2----         NESTED LOOPS ~
  4          1          1      23171          0 4----          HASH JOIN ~
  5          1          1          1          1                 INDEX ~ RANGE SCAN PS0PAY_CALENDAR
  6          1       1925      23171      .0831 8-              VIEW ~  VW_SQ_1
  7          1       1925      23171      .0831 8-               HASH ~ GROUP BY
  8          1       1925      33020      .0583 5-                NESTED LOOPS ~
  9          1          1          1          1                    INDEX ~ RANGE SCAN PS0PAY_CALENDAR
 10          1       2000      33020      .0606 6-                 INDEX ~ FAST FULL SCAN WB_JOB
 11      23171      23171      23174      .9999                INDEX ~ RANGE SCAN WB_JOB
&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>very cool, but alias doesn&#8217;t seem to do much for me. Here is the plan with aliases (cool feature)</p>
<pre>
----------------------------------------------------------------
| Id  | Operation                    | Name            | Rows  |
----------------------------------------------------------------
|   0 | SELECT STATEMENT             |                 |       |
|   1 |  SORT AGGREGATE              |                 |     1 |  SEL$11A0A147
|*  2 |   TABLE ACCESS BY INDEX ROWID| WB_JOB          |     1 |  SEL$11A0A147 / B@SEL$2
|   3 |    NESTED LOOPS              |                 |     1 |
|*  4 |     HASH JOIN                |                 |    10 |
|*  5 |      INDEX RANGE SCAN        | PS0PAY_CALENDAR |     1 |  SEL$11A0A147 / A@SEL$2
|   6 |      VIEW                    | VW_SQ_1         | 23171 |  SEL$975CABD1 / VW_SQ_1@SEL$5D2EE882
|   7 |       HASH GROUP BY          |                 | 23171 |  SEL$975CABD1
|   8 |        NESTED LOOPS          |                 |  1925 |
|*  9 |         INDEX RANGE SCAN     | PS0PAY_CALENDAR |     1 |  SEL$975CABD1 / A@SEL$D5F10F0C
|* 10 |         INDEX FAST FULL SCAN | WB_JOB          |  2000 |  SEL$975CABD1 / F@SEL$3
|* 11 |     INDEX RANGE SCAN         | WB_JOB          |     1 |  SEL$11A0A147 / B@SEL$2
</pre>
<p>but the it doesn&#8217;t seem to affect the estimated cardinalities</p>
<pre>
 ID     STARTS     E_ROWS     A_ROWS      RATIO RATIO_G    operation
--- ---------- ---------- ---------- ---------- ---------- -----------------------------------------
  0                                                        SELECT STATEMENT ~
  1          1          1          1          1             SORT ~ AGGREGATE
  2          1          1       1657      .0006 6---         TABLE ACCESS ~ BY INDEX ROWID WB_JOB
  3          1          1      46346          0 2----         NESTED LOOPS ~
  4          1          1      23171          0 4----          HASH JOIN ~
  5          1          1          1          1                 INDEX ~ RANGE SCAN PS0PAY_CALENDAR
  6          1       1925      23171      .0831 8-              VIEW ~  VW_SQ_1
  7          1       1925      23171      .0831 8-               HASH ~ GROUP BY
  8          1       1925      33020      .0583 5-                NESTED LOOPS ~
  9          1          1          1          1                    INDEX ~ RANGE SCAN PS0PAY_CALENDAR
 10          1       2000      33020      .0606 6-                 INDEX ~ FAST FULL SCAN WB_JOB
 11      23171      23171      23174      .9999                INDEX ~ RANGE SCAN WB_JOB
</pre>
]]></content:encoded>
	</item>
</channel>
</rss>
