Den 25.05.2016 23.12, skrev Bergquist, Brett:
> I have a table with 80,640,704 rows.   My query currently is:
> 
>  
> 
> SELECT
> 
> COUNT(*) AS USE_COUNT
> 
> FROM
> PKG_9145E_V1.COSEDDROPPROFILEDSCPTABLEBUNDLE_COSEDDROPPROFILEDSCPTABLEENTRY
> CBCE
> 
> WHERE CBCE.COSEDDROPPROFILEDSCPTABLEENTRY_ID = 768
> 
> AND CBCE.COSEDDROPPROFILEDSCPTABLEBUNDLE_ID != 2
> 
>  
> 
> This query is going to return a count of 78,569.   
> 
>  
> 
> What I really want to know is if there is any row that satisfies the
> condition.   I have logic that needs to run if there is such a row.   So
> is there a more efficient query in Derby that will short circuit when it
> find a row?

Hi Brett,

FETCH/OFFSET [1] comes to mind, i.e. going from

SELECT COUNT(*)
FROM CBCE
WHERE ...

to

SELECT some_column_or_a constant
FROM CBCE
WHERE ...
FETCH FIRST ROW ONLY


Since there's no ORDER BY (or other relevant operations / clauses) in
your query, that should hopefully cause Derby to stop processing and
return once the first matching row is found.
I say hopefully, because I haven't verified it :)


Regards,
-- 
Kristian


[1] https://db.apache.org/derby/docs/10.12/ref/rrefsqljoffsetfetch.html

> 
>  
> 
> Thanks
> 
>  
> 
> Brett
> 
> 
> ------------------------------------------------------------------------
> Canoga Perkins
> 20600 Prairie Street
> Chatsworth, CA 91311
> (818) 718-6300
> 
> This e-mail and any attached document(s) is confidential and is intended
> only for the review of the party to whom it is addressed. If you have
> received this transmission in error, please notify the sender
> immediately and discard the original message and any attachment(s).

Reply via email to