Return-Path: <oracle-l-bounce@freelists.org>
X-Original-To: oracle-l@orafaq.com
Delivered-To: oracle-l@orafaq.com
Received: from puck1183.startdedicated.com (localhost [127.0.0.1])
 by puck1183.startdedicated.com (Postfix) with ESMTP id E819A19605AB
 for <oracle-l@orafaq.com>; Mon, 29 Feb 2016 15:14:14 +0100 (CET)
Received: from turing.freelists.org (freelists-180.iquest.net [206.53.239.180])
 by puck1183.startdedicated.com (Postfix) with ESMTPS
 for <oracle-l@orafaq.com>; Mon, 29 Feb 2016 15:14:14 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id D8CE23350E;
 Mon, 29 Feb 2016 09:13:58 -0500 (EST)
X-Virus-Scanned: Debian amavisd-new at turing.freelists.org
Received: from turing.freelists.org ([127.0.0.1])
 by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id EeDK0sJ5oN3R; Mon, 29 Feb 2016 09:13:58 -0500 (EST)
Received: from turing.freelists.org (localhost [127.0.0.1])
 by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 39E4631609;
 Mon, 29 Feb 2016 09:13:18 -0500 (EST)
Received: with ECARTIS (v1.0.0; list oracle-l); Mon, 29 Feb 2016 09:12:37 -0500 (EST)
Received: from localhost (localhost [127.0.0.1])
 by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 237242F846
 for <oracle-l@freelists.org>; Mon, 29 Feb 2016 09:12:37 -0500 (EST)
Received: from turing.freelists.org ([127.0.0.1])
 by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id kIFsbp8w6ZUr for <oracle-l@freelists.org>;
 Mon, 29 Feb 2016 09:12:37 -0500 (EST)
Received: from DUB004-OMC1S25.hotmail.com (dub004-omc1s25.hotmail.com [157.55.0.224])
 (using TLSv1 with cipher AES256-SHA (256/256 bits))
 (No client certificate requested)
 by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 7DF2E2F6DA
 for <oracle-l@freelists.org>; Mon, 29 Feb 2016 09:12:36 -0500 (EST)
Received: from DUB408-EAS198 ([157.55.0.239]) by DUB004-OMC1S25.hotmail.com over TLS secured channel with Microsoft SMTPSVC(7.5.7601.23008);
	 Mon, 29 Feb 2016 06:12:35 -0800
X-TMN: [iuwicj09DFizbJtkjG787CDB/+m1r2go]
X-Originating-Email: [dombrooks@hotmail.com]
Message-ID: <DUB408-EAS19821086E6C992D8F52D8ADA1BA0@phx.gbl>
Content-Type: multipart/alternative;
 boundary="_79a87ab2-2245-4657-b3b0-644715a63609_"
MIME-Version: 1.0
To: Dominic Brooks <dombrooks@hotmail.com>, <xt.and.r@gmail.com>, ORACLE-L
 <oracle-l@freelists.org>
From: Dominic Brooks <dombrooks@hotmail.com>
Subject: RE: RANK+WINDOW NOSORT STOPKEY=> stopkey doesn't work
Date: Mon, 29 Feb 2016 14:12:17 +0000
X-OriginalArrivalTime: 29 Feb 2016 14:12:35.0213 (UTC) FILETIME=[3CC18BD0:01D172FB]
X-archive-position: 63708
X-ecartis-version: Ecartis v1.0.0
Sender: oracle-l-bounce@freelists.org
Errors-to: oracle-l-bounce@freelists.org
X-original-sender: dombrooks@hotmail.com
Precedence: normal
Reply-To: dombrooks@hotmail.com
List-help: <mailto:ecartis@freelists.org?Subject=help>
List-unsubscribe: <oracle-l-request@freelists.org?Subject=unsubscribe>
List-software: Ecartis version 1.0.0
List-Id: oracle-l <oracle-l.freelists.org>
X-List-ID: oracle-l <oracle-l.freelists.org>
List-subscribe: <oracle-l-request@freelists.org?Subject=subscribe>
List-owner: <mailto:mark.bobak@proquest.com>
List-post: <mailto:oracle-l@freelists.org>
List-archive: <http://www.freelists.org/archives/oracle-l>
X-list: oracle-l
--_79a87ab2-2245-4657-b3b0-644715a63609_
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="utf-8"

There are 10000 rows at each rank #.
DENSE_RANK deals in consecutive ranks so 10000 in #1=2C 10000 at #2=2C etc
RANK needs to know how many rows are in the current rank before it knows th=
e next starting rank so 10000 at #1=2C 10000 at #10001=2C etc

I was trying to think why that would make a difference and I don't think it=
 should.

Ignoring DENSE_RANK for a mo...
With RANK if you do RN <=3D 1=2C  you get 10000 rows with a shortcut.
If you do RN <=3D 10000=2C you get 10000 rows without a shortcut.

It doesn't seem to be cost-based as both above have the same plan with STOP=
KEY & same cost.

So... Bug?


Sent from my Windows Phone
________________________________
From: Dominic Brooks<mailto:dombrooks@hotmail.com>
Sent: =E2=80=8E29/=E2=80=8E02/=E2=80=8E2016 13:00
To: Dominic Brooks<mailto:dombrooks@hotmail.com>=3B xt.and.r@gmail.com<mail=
to:xt.and.r@gmail.com>=3B ORACLE-L<mailto:oracle-l@freelists.org>
Subject: RE: RANK+WINDOW NOSORT STOPKEY=3D> stopkey doesn't work

Oh yes... I was messing with the value of the RN limit and that makes a dif=
ference.

Sent from my Windows Phone
________________________________
From: Dominic Brooks<mailto:dombrooks@hotmail.com>
Sent: =E2=80=8E29/=E2=80=8E02/=E2=80=8E2016 12:49
To: Dominic Brooks<mailto:dombrooks@hotmail.com>=3B xt.and.r@gmail.com<mail=
to:xt.and.r@gmail.com>=3B ORACLE-L<mailto:oracle-l@freelists.org>
Subject: RE: RANK+WINDOW NOSORT STOPKEY=3D> stopkey doesn't work

Ignore... I must have done something stupid. Now I get results consistent w=
ith yours in all 3.

Sent from my Windows Phone
________________________________
From: Dominic Brooks<mailto:dombrooks@hotmail.com>
Sent: =E2=80=8E29/=E2=80=8E02/=E2=80=8E2016 12:44
To: xt.and.r@gmail.com<mailto:xt.and.r@gmail.com>=3B ORACLE-L<mailto:oracle=
-l@freelists.org>
Subject: RE: RANK+WINDOW NOSORT STOPKEY=3D> stopkey doesn't work

Seems to be an 11.2.0.4 thing?
11.2.0.3 and 12.1.0.2 were both as expected for me at least.

Sent from my Windows Phone
________________________________
From: Sayan Malakshinov<mailto:xt.and.r@gmail.com>
Sent: =E2=80=8E29/=E2=80=8E02/=E2=80=8E2016 11:22
To: ORACLE-L<mailto:oracle-l@freelists.org>
Subject: RANK+WINDOW NOSORT STOPKEY=3D> stopkey doesn't work

Hi list=2C

Anybody knows why STOPKEY doesn't work with RANK()over()=2C though it works
fine with row_number() and dense_rank()?

I have simple test case:
http://orasql.org/scripts/stopkey/denserank.sql
http://orasql.org/scripts/stopkey/rank.sql

I've created a table with index:

create table xt_test(dt not null) as
  with n10000 as (select level n from dual connect by level<=3D10000)
      =2Cn10    as (select level n from dual connect by level<=3D10)
  select date'2016-01-01'+n10.n dt
  from n10000=2C n10
/
create index ix_test on xt_test(dt)=3B


And if we use DENSE_RANK=2C we can see that stopkey works fine and query
executions stops when DENSE_RANK is bigger than needed:

SELECT/*+ gather_plan_statistics denserank */ DT=2C RID FROM (SELECT/*+
index(t (dt)) */ DT =2C ROWID RID =2C DENSE_RANK()OVER(ORDER BY DT) RN FROM
XT_TEST T ) WHERE RN<=3D2

Plan hash value: 1892911073

---------------------------------------------------------------------------=
-----------------------------------------
| Id  | Operation              | Name    | Starts | E-Rows | Cost
(%CPU)| E-Time   | A-Rows |   A-Time   | Buffers |
---------------------------------------------------------------------------=
-----------------------------------------
|   0 | SELECT STATEMENT       |         |      1 |        |   160
(100)|          |  20000 |00:00:00.06 |     253 |
|*  1 |  VIEW                  |         |      1 |    100K|   160
(0)| 00:00:02 |  20000 |00:00:00.06 |     253 |
|*  2 |   WINDOW NOSORT STOPKEY|         |      1 |    100K|   160
(0)| 00:00:02 |  20000 |00:00:00.04 |     253 |
|   3 |    INDEX FULL SCAN     | IX_TEST |      1 |    100K|   160
(0)| 00:00:02 |  20001 |00:00:00.02 |     253 |
---------------------------------------------------------------------------=
-----------------------------------------

But if we use RANK()=2C it doesn't stop and fetches all rows from index:

SELECT/*+ gather_plan_statistics rank */ DT=2C RID FROM (SELECT/*+
index(t (dt)) */ DT =2C ROWID RID =2C RANK()OVER(ORDER BY DT) RN FROM
XT_TEST T ) WHERE RN<=3D20000

Plan hash value: 1892911073

---------------------------------------------------------------------------=
-----------------------------------------
| Id  | Operation              | Name    | Starts | E-Rows | Cost (%CPU)|
E-Time   | A-Rows |   A-Time   | Buffers |
---------------------------------------------------------------------------=
-----------------------------------------
|   0 | SELECT STATEMENT       |         |      1 |        |   160 (100)|
       |  20000 |00:00:00.04 |     465 |
|*  1 |  VIEW                  |         |      1 |    100K|   160   (0)|
00:00:02 |  20000 |00:00:00.04 |     465 |
|*  2 |   WINDOW NOSORT STOPKEY|         |      1 |    100K|   160   (0)|
00:00:02 |    100K|00:00:00.14 |     465 |
|   3 |    INDEX FULL SCAN     | IX_TEST |      1 |    100K|   160   (0)|
00:00:02 |    100K|00:00:00.04 |     465 |
---------------------------------------------------------------------------=
-----------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter("RN"<=3D20000)
   2 - filter(RANK() OVER ( ORDER BY "DT")<=3D20000)


--
Best regards=2C
Sayan Malakshinov
http://orasql.org

--_79a87ab2-2245-4657-b3b0-644715a63609_
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="utf-8"

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html=3B charset=3Dutf-8">
</head>
<body>
<div>
<div style=3D"font-family: Calibri=2Csans-serif=3B font-size: 11pt=3B">Ther=
e are 10000 rows at each rank #.<br>
DENSE_RANK deals in consecutive ranks so 10000 in #1=2C 10000 at #2=2C etc<=
br>
RANK needs to know how many rows are in the current rank before it knows th=
e next starting rank so 10000 at #1=2C 10000 at #10001=2C etc<br>
<br>
I was trying to think why that would make a difference and I don't think it=
 should.<br>
<br>
Ignoring DENSE_RANK for a mo...<br>
With RANK if you do RN &lt=3B=3D 1=2C&nbsp=3B you get 10000 rows with a sho=
rtcut.<br>
If you do RN &lt=3B=3D 10000=2C you get 10000 rows without a shortcut.<br>
<br>
It doesn't seem to be cost-based as both above have the same plan with STOP=
KEY &amp=3B same cost.
<br>
<br>
So... Bug? <br>
<br>
<br>
Sent from my Windows Phone</div>
</div>
<div dir=3D"ltr">
<hr>
<span style=3D"font-family: Calibri=2Csans-serif=3B font-size: 11pt=3B font=
-weight: bold=3B">From:
</span><span style=3D"font-family: Calibri=2Csans-serif=3B font-size: 11pt=
=3B"><a href=3D"mailto:dombrooks@hotmail.com">Dominic Brooks</a></span><br>
<span style=3D"font-family: Calibri=2Csans-serif=3B font-size: 11pt=3B font=
-weight: bold=3B">Sent:
</span><span style=3D"font-family: Calibri=2Csans-serif=3B font-size: 11pt=
=3B">=E2=80=8E29/=E2=80=8E02/=E2=80=8E2016 13:00</span><br>
<span style=3D"font-family: Calibri=2Csans-serif=3B font-size: 11pt=3B font=
-weight: bold=3B">To:
</span><span style=3D"font-family: Calibri=2Csans-serif=3B font-size: 11pt=
=3B"><a href=3D"mailto:dombrooks@hotmail.com">Dominic Brooks</a>=3B
<a href=3D"mailto:xt.and.r@gmail.com">xt.and.r@gmail.com</a>=3B <a href=3D"=
mailto:oracle-l@freelists.org">
ORACLE-L</a></span><br>
<span style=3D"font-family: Calibri=2Csans-serif=3B font-size: 11pt=3B font=
-weight: bold=3B">Subject:
</span><span style=3D"font-family: Calibri=2Csans-serif=3B font-size: 11pt=
=3B">RE: RANK&#43=3BWINDOW NOSORT STOPKEY=3D&gt=3B stopkey doesn't work</sp=
an><br>
<br>
</div>
<div>
<div>
<div style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt">Oh yes...=
 I was messing with the value of the RN limit and that makes a difference.<=
br>
<br>
Sent from my Windows Phone</div>
</div>
<div dir=3D"ltr">
<hr>
<span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt=3B font-w=
eight:bold">From:
</span><span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt"><=
a href=3D"mailto:dombrooks@hotmail.com">Dominic Brooks</a></span><br>
<span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt=3B font-w=
eight:bold">Sent:
</span><span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt">=
=E2=80=8E29/=E2=80=8E02/=E2=80=8E2016 12:49</span><br>
<span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt=3B font-w=
eight:bold">To:
</span><span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt"><=
a href=3D"mailto:dombrooks@hotmail.com">Dominic Brooks</a>=3B
<a href=3D"mailto:xt.and.r@gmail.com">xt.and.r@gmail.com</a>=3B <a href=3D"=
mailto:oracle-l@freelists.org">
ORACLE-L</a></span><br>
<span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt=3B font-w=
eight:bold">Subject:
</span><span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt">R=
E: RANK&#43=3BWINDOW NOSORT STOPKEY=3D&gt=3B stopkey doesn't work</span><br=
>
<br>
</div>
<div>
<div>
<div style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt">Ignore...=
 I must have done something stupid. Now I get results consistent with yours=
 in all 3.<br>
<br>
Sent from my Windows Phone</div>
</div>
<div dir=3D"ltr">
<hr>
<span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt=3B font-w=
eight:bold">From:
</span><span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt"><=
a href=3D"mailto:dombrooks@hotmail.com">Dominic Brooks</a></span><br>
<span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt=3B font-w=
eight:bold">Sent:
</span><span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt">=
=E2=80=8E29/=E2=80=8E02/=E2=80=8E2016 12:44</span><br>
<span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt=3B font-w=
eight:bold">To:
</span><span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt"><=
a href=3D"mailto:xt.and.r@gmail.com">xt.and.r@gmail.com</a>=3B
<a href=3D"mailto:oracle-l@freelists.org">ORACLE-L</a></span><br>
<span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt=3B font-w=
eight:bold">Subject:
</span><span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt">R=
E: RANK&#43=3BWINDOW NOSORT STOPKEY=3D&gt=3B stopkey doesn't work</span><br=
>
<br>
</div>
<div>
<div>
<div style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt">Seems to =
be an 11.2.0.4 thing?<br>
11.2.0.3 and 12.1.0.2 were both as expected for me at least.<br>
<br>
Sent from my Windows Phone</div>
</div>
<div dir=3D"ltr">
<hr>
<span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt=3B font-w=
eight:bold">From:
</span><span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt"><=
a href=3D"mailto:xt.and.r@gmail.com">Sayan Malakshinov</a></span><br>
<span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt=3B font-w=
eight:bold">Sent:
</span><span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt">=
=E2=80=8E29/=E2=80=8E02/=E2=80=8E2016 11:22</span><br>
<span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt=3B font-w=
eight:bold">To:
</span><span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt"><=
a href=3D"mailto:oracle-l@freelists.org">ORACLE-L</a></span><br>
<span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt=3B font-w=
eight:bold">Subject:
</span><span style=3D"font-family:Calibri=2Csans-serif=3B font-size:11pt">R=
ANK&#43=3BWINDOW NOSORT STOPKEY=3D&gt=3B stopkey doesn't work</span><br>
<br>
</div>
<div>
<div dir=3D"ltr">Hi list=2C
<div><br>
</div>
<div>Anybody knows why STOPKEY doesn't work with RANK()over()=2C though it =
works fine with row_number() and dense_rank()?</div>
<div><br>
</div>
<div>I have simple test case:</div>
<div><a href=3D"http://orasql.org/scripts/stopkey/denserank.sql">http://ora=
sql.org/scripts/stopkey/denserank.sql</a><br clear=3D"all">
<div><a href=3D"http://orasql.org/scripts/stopkey/rank.sql">http://orasql.o=
rg/scripts/stopkey/rank.sql</a><br>
</div>
<div><br>
</div>
<div>I've created a table with index:</div>
<div>
<pre style=3D"color:rgb(0=2C0=2C0)=3B word-wrap:break-word=3B white-space:p=
re-wrap">create table xt_test(dt not null) as=20
  with n10000 as (select level n from dual connect by level&lt=3B=3D10000)
      =2Cn10    as (select level n from dual connect by level&lt=3B=3D10)
  select date'2016-01-01'&#43=3Bn10.n dt
  from n10000=2C n10
/
create index ix_test on xt_test(dt)=3B</pre>
<pre style=3D"color:rgb(0=2C0=2C0)=3B word-wrap:break-word=3B white-space:p=
re-wrap"><br></pre>
<pre style=3D"color:rgb(0=2C0=2C0)=3B word-wrap:break-word=3B white-space:p=
re-wrap">And if we use DENSE_RANK=2C we can see that stopkey works fine and=
 query executions stops when DENSE_RANK is bigger than needed:</pre>
<pre style=3D"word-wrap:break-word"><font color=3D"#000000"><span style=3D"=
white-space:pre-wrap">SELECT/*&#43=3B gather_plan_statistics denserank */ D=
T=2C RID FROM (SELECT/*&#43=3B
index(t (dt)) */ DT =2C ROWID RID =2C DENSE_RANK()OVER(ORDER BY DT) RN FROM
XT_TEST T ) WHERE RN&lt=3B=3D2

Plan hash value: 1892911073

---------------------------------------------------------------------------=
-----------------------------------------
| Id  | Operation              | Name    | Starts | E-Rows | Cost (%CPU)| E=
-Time   | A-Rows |   A-Time   | Buffers |
---------------------------------------------------------------------------=
-----------------------------------------
|   0 | SELECT STATEMENT       |         |      1 |        |   160 (100)|  =
        |  20000 |00:00:00.06 |     253 |
|*  1 |  VIEW                  |         |      1 |    100K|   160   (0)| 0=
0:00:02 |  20000 |00:00:00.06 |     253 |
|*  2 |   WINDOW NOSORT STOPKEY|         |      1 |    100K|   160   (0)| 0=
0:00:02 |  20000 |00:00:00.04 |     253 |
|   3 |    INDEX FULL SCAN     | IX_TEST |      1 |    100K|   160   (0)| 0=
0:00:02 |  20001 |00:00:00.02 |     253 |
---------------------------------------------------------------------------=
-----------------------------------------</span></font>
</pre>
</div>
<div>But if we use RANK()=2C it doesn't stop and fetches all rows from inde=
x:</div>
<div><br>
</div>
<div>
<div><font face=3D"monospace=2C monospace" size=3D"1">SELECT/*&#43=3B gathe=
r_plan_statistics rank */ DT=2C RID FROM (SELECT/*&#43=3B</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1">index(t (dt)) */ DT =
=2C ROWID RID =2C RANK()OVER(ORDER BY DT) RN FROM</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1">XT_TEST T ) WHERE RN&=
lt=3B=3D20000</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1"><br>
</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1">Plan hash value: 1892=
911073</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1"><br>
</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1">---------------------=
---------------------------------------------------------------------------=
--------------------</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1">| Id &nbsp=3B| Operat=
ion &nbsp=3B &nbsp=3B &nbsp=3B &nbsp=3B &nbsp=3B &nbsp=3B &nbsp=3B| Name &n=
bsp=3B &nbsp=3B| Starts | E-Rows | Cost (%CPU)| E-Time &nbsp=3B | A-Rows | =
&nbsp=3B A-Time &nbsp=3B | Buffers |</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1">---------------------=
---------------------------------------------------------------------------=
--------------------</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1">| &nbsp=3B 0 | SELECT=
 STATEMENT &nbsp=3B &nbsp=3B &nbsp=3B | &nbsp=3B &nbsp=3B &nbsp=3B &nbsp=3B=
 | &nbsp=3B &nbsp=3B &nbsp=3B1 | &nbsp=3B &nbsp=3B &nbsp=3B &nbsp=3B| &nbsp=
=3B 160 (100)| &nbsp=3B &nbsp=3B &nbsp=3B &nbsp=3B &nbsp=3B| &nbsp=3B20000 =
|00:00:00.04 | &nbsp=3B &nbsp=3B 465 |</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1">|* &nbsp=3B1 | &nbsp=
=3BVIEW &nbsp=3B &nbsp=3B &nbsp=3B &nbsp=3B &nbsp=3B &nbsp=3B &nbsp=3B &nbs=
p=3B &nbsp=3B| &nbsp=3B &nbsp=3B &nbsp=3B &nbsp=3B | &nbsp=3B &nbsp=3B &nbs=
p=3B1 | &nbsp=3B &nbsp=3B100K| &nbsp=3B 160 &nbsp=3B (0)| 00:00:02 | &nbsp=
=3B20000 |00:00:00.04 | &nbsp=3B &nbsp=3B 465 |</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1">|* &nbsp=3B2 | &nbsp=
=3B WINDOW NOSORT STOPKEY| &nbsp=3B &nbsp=3B &nbsp=3B &nbsp=3B | &nbsp=3B &=
nbsp=3B &nbsp=3B1 | &nbsp=3B &nbsp=3B100K| &nbsp=3B 160 &nbsp=3B (0)| 00:00=
:02 | &nbsp=3B &nbsp=3B100K|00:00:00.14 | &nbsp=3B &nbsp=3B 465 |</font></d=
iv>
<div><font face=3D"monospace=2C monospace" size=3D"1">| &nbsp=3B 3 | &nbsp=
=3B &nbsp=3BINDEX FULL SCAN &nbsp=3B &nbsp=3B | IX_TEST | &nbsp=3B &nbsp=3B=
 &nbsp=3B1 | &nbsp=3B &nbsp=3B100K| &nbsp=3B 160 &nbsp=3B (0)| 00:00:02 | &=
nbsp=3B &nbsp=3B100K|00:00:00.04 | &nbsp=3B &nbsp=3B 465 |</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1">---------------------=
---------------------------------------------------------------------------=
--------------------</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1"><br>
</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1">Predicate Information=
 (identified by operation id):</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1">---------------------=
------------------------------</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1"><br>
</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1">&nbsp=3B &nbsp=3B1 - =
filter(&quot=3BRN&quot=3B&lt=3B=3D20000)</font></div>
<div><font face=3D"monospace=2C monospace" size=3D"1">&nbsp=3B &nbsp=3B2 - =
filter(RANK() OVER ( ORDER BY &quot=3BDT&quot=3B)&lt=3B=3D20000)</font></di=
v>
</div>
<div><br>
</div>
<div><br>
</div>
-- <br>
<div class=3D"x_x_x_x_gmail_signature">
<div dir=3D"ltr">
<div>
<div dir=3D"ltr">
<div>Best regards=2C<br>
Sayan Malakshinov</div>
<div><a href=3D"http://orasql.org" target=3D"_blank">http://orasql.org</a><=
/div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

--_79a87ab2-2245-4657-b3b0-644715a63609_--
--
http://www.freelists.org/webpage/oracle-l


