I found that my Account.Id is looping because that is a calculated value (multiple properties combined into one).

You are correct, it is more WHERE conditions.  In the original query I did have those values as more WHERE, but I am attempting to speed up the processing.

I started looking at the data, and found the query was doing A LOT of process/retrieving of data that was later thrown on the floor.  If I could make the query use the Account.Type first, I would eliminate extra time joining other (large) tables.

You are correct, that where clause is not exactly right (as this is not my real SQL, but a representation of what I was doing)


Should've been:

select Account.Name, Account.State, Transaction.Amt, Transaction.Date, Transaction.Service
from Transaction 
left join Account 
    on Account.Id = Transaction.Account  
where Transaction.Account in (
    Select Account.Id

     from Account
     where Account.Type is not null
     and Account.Id>123456789
     and Account.Id<=323456789
and Transaction.Date >= ?
and Transaction.Date <= ?

I attempted to use '%NOFLATTEN', which changed the 'show plan', but the range is not acknowledged in the plan, showed  'looping on'.

I also ran a real SQL and watched via JOBEXAM and the process started with 0.

That is the problem, I can't get myFlag to that method.