Ok . . . I am already benefiting from the support from this list : - ) 

I noticed that I was actually ordering my query BY rownum (which doesn't make 
much sense . . . and perhaps oracle's optimizer recognized this and ignored the 
pseudo column.)

Just to be sure, I change the query and then reran my tests - the results, 
however, did not change

New SQL

SELECT
    d.ROW_NUMBER,
    d.f1,
    d.f2,
    d.f3,
    d.f4,
    d.f5
FROM
    (
        SELECT /*+ FULL(A) PARALLEL(A 6) */
            rownum ROW_NUMBER,
            A.field1 f1 ,
            A.field2 f2,
            A.field3 f3,
            A.field4 f4,
            B.field5 f5
        FROM
            tableA A,
            tableB B
        WHERE
                B.field6      IN      ( 'TOK3', 'TOK4', 'TOK5' )
            AND B.field7      LIKE    'A%'
            AND B.field8      IN      ('TOK1', 'TOK2')
            AND B.fkfield1    =       A.field1
        ORDER BY
            2, 3, 4, 5, 6
      ) d
WHERE
        d.row_number <  2020000
    AND d.row_number >= 1000000

Here is a summary of the test results (I have a test harness which uses ssh to 
run the exact same tests on more than one host).

INPUT: ( ( HOSTNAME = sandbox ) ( RANGE = 2000000       0 ) ) OUTPUT: ( 
ORACLE_ERROR_COUNT = 2 )
INPUT: ( ( HOSTNAME = prod    ) ( RANGE = 2000000       0 ) ) OUTPUT: ( 
ORACLE_ERROR_COUNT = 0 )
INPUT: ( ( HOSTNAME = sandbox ) ( RANGE = 1000000       0 ) ) OUTPUT: ( 
ORACLE_ERROR_COUNT = 0 )
INPUT: ( ( HOSTNAME = prod    ) ( RANGE = 1000000       0 ) ) OUTPUT: ( 
ORACLE_ERROR_COUNT = 0 )
INPUT: ( ( HOSTNAME = sandbox ) ( RANGE = 2000000 1000000 ) ) OUTPUT: ( 
ORACLE_ERROR_COUNT = 0 )
INPUT: ( ( HOSTNAME = prod    ) ( RANGE = 2000000 1000000 ) ) OUTPUT: ( 
ORACLE_ERROR_COUNT = 0 )
INPUT: ( ( HOSTNAME = sandbox ) ( RANGE = 2020000 1000000 ) ) OUTPUT: ( 
ORACLE_ERROR_COUNT = 0 )
INPUT: ( ( HOSTNAME = prod    ) ( RANGE = 2020000 1000000 ) ) OUTPUT: ( 
ORACLE_ERROR_COUNT = 0 )
INPUT: ( ( HOSTNAME = sandbox ) ( RANGE = 2030000 1000000 ) ) OUTPUT: ( 
ORACLE_ERROR_COUNT = 2 )
INPUT: ( ( HOSTNAME = prod    ) ( RANGE = 2030000 1000000 ) ) OUTPUT: ( 
ORACLE_ERROR_COUNT = 0 )

Reply via email to