View previous topic :: View next topic
|
Author |
Message |
Melwyn Mark DSouza
New User
Joined: 02 Jun 2009 Posts: 2 Location: India
|
|
|
|
Hi,
I have a cursor declared as follows:
Code: |
SELECT A.COL1,
A.EFF_DT,
A.END_DT
FROM TABLEA A
WHERE A.COL1='X'
AND A.COL2 ='Y'
ORDER BY END_DT DESC
|
I am required to improve the performance of this query. Also, in the code it so happens that only the first row retrieved is required. So I tried the following in a single-select statement:
Code: |
SELECT A.COL1,
A.EFF_DT,
A.END_DT
FROM TABLEA A
WHERE A.COL1='X'
AND A.COL2 ='Y'
ORDER BY END_DT DESC
FETCH FIRST 1 ROW ONLY
|
But now the PROBLEM is that the first row retrieved is not the same.
There is a non-unique index on COL1. Primary key is composite of several columns, none of which are used in this query.
I have even tried using MAX in query and sub-query but to no avail.
Any pointers?
Thanks & Regards,
Melwyn |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
Well either upgrade to version 8, where you can have an ORDER BY in a singleton select
or
go back to the CURSOR
use OPTIMIZE for 1 ROW. |
|
Back to top |
|
|
Melwyn Mark DSouza
New User
Joined: 02 Jun 2009 Posts: 2 Location: India
|
|
|
|
Thanks Dick.
In DB2 Platinum I see
DB2 VERSION :V9R1M0
Thanks & Regards,
Melwyn |
|
Back to top |
|
|
|