>Preparing query: SELECT a.CON_ID, a.* FROM XRD_RC_DATA_VIEW_F a Prepare 
>time: 3.338s Field #01: XRD_RC_DATA_VIEW_F.CON_ID Alias:CON_ID 
>Type:INTEGER Field #02: XRD_RC_DATA_VIEW_F.CON_ID Alias:CON_ID 
>Type:INTEGER Field #03: XRD_RC_DATA_VIEW_F.MIN_FWHM_GAN_002 
>Alias:MIN_FWHM_GAN_002 Type:FLOAT Field #04: 
>XRD_RC_DATA_VIEW_F.AVG_FWHM_GAN_002 Alias:AVG_FWHM_GAN_002 Type:DOUBLE 
>PRECISION Field #05: XRD_RC_DATA_VIEW_F.MAX_FWHM_GAN_002 
>Alias:MAX_FWHM_GAN_002 Type:FLOAT Field #06: 
>XRD_RC_DATA_VIEW_F.COUNT_FWHM_GAN_002 Alias:COUNT_FWHM_GAN_002 
>Type:INTEGER Field #07: XRD_RC_DATA_VIEW_F.MIN_FWHM_ALN_002 
>Alias:MIN_FWHM_ALN_002 Type:FLOAT Field #08: 
>XRD_RC_DATA_VIEW_F.AVG_FWHM_ALN_002 Alias:AVG_FWHM_ALN_002 Type:DOUBLE 
>PRECISION Field #09: XRD_RC_DATA_VIEW_F.MAX_FWHM_ALN_002 
>Alias:MAX_FWHM_ALN_002 Type:FLOAT Field #10: 
>XRD_RC_DATA_VIEW_F.COUNT_FWHM_ALN_002 Alias:COUNT_FWHM_ALN_002 
>Type:INTEGER Field #11: XRD_RC_DATA_VIEW_F.MIN_FWHM_GAN_102 
>Alias:MIN_FWHM_GAN_102 Type:FLOAT Field #12: 
>XRD_RC_DATA_VIEW_F.AVG_FWHM_GAN_102 Alias:AVG_FWHM_GAN_102 Type:DOUBLE 
>PRECISION Field #13: XRD_RC_DATA_VIEW_F.MAX_FWHM_GAN_102 
>Alias:MAX_FWHM_GAN_102 Type:FLOAT Field #14: 
>XRD_RC_DATA_VIEW_F.COUNT_FWHM_GAN_102 Alias:COUNT_FWHM_GAN_102 
>Type:INTEGER PLAN (A DATA_XRD_RC INDEX (IDX_DATA_XRD_RC1, 
>IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC ORDER IDX_DATA_XRD_RC3 INDEX 
>(IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC INDEX 
>(IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC ORDER 
>IDX_DATA_XRD_RC9 INDEX (IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A 
>DATA_XRD_RC INDEX (IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A 
>DATA_XRD_RC ORDER IDX_DATA_XRD_RC3 INDEX (IDX_DATA_XRD_RC1, 
>IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC INDEX (IDX_DATA_XRD_RC1, 
>IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC ORDER IDX_DATA_XRD_RC9 INDEX 
>(IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC INDEX 
>(IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC ORDER 
>IDX_DATA_XRD_RC3 INDEX (IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A 
>DATA_XRD_RC INDEX (IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A 
>DATA_XRD_RC ORDER IDX_DATA_XRD_RC9 INDEX (IDX_DATA_XRD_RC1, 
>IDX_DATA_XRD_RC4)) PLAN (A A NATURAL)
>
>Executing...
>Done.
>0 fetches, 0 marks, 0 reads, 0 writes.
>0 inserts, 0 updates, 0 deletes, 127020 index, 960 seq.
>Delta memory: -72 bytes.
>Total execution time: 14.561s
>Script execution finished.
> 
>If I use DISTINCT
>
>Preparing query: SELECT DISTINCT a.CON_ID, a.* FROM XRD_RC_DATA_VIEW_F 
>a Prepare time: 3.962s
...
>PLAN (A DATA_XRD_RC ORDER IDX_DATA_XRD_RC9 INDEX (IDX_DATA_XRD_RC1, 
>IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC INDEX (IDX_DATA_XRD_RC1, 
>IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC ORDER IDX_DATA_XRD_RC3 INDEX 
>(IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC INDEX 
>(IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC ORDER 
>IDX_DATA_XRD_RC9 INDEX (IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A 
>DATA_XRD_RC INDEX (IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A 
>DATA_XRD_RC ORDER IDX_DATA_XRD_RC3 INDEX (IDX_DATA_XRD_RC1, 
>IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC INDEX (IDX_DATA_XRD_RC1, 
>IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC ORDER IDX_DATA_XRD_RC9 INDEX 
>(IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC INDEX 
>(IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC ORDER 
>IDX_DATA_XRD_RC3 INDEX (IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A 
>DATA_XRD_RC INDEX (IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A 
>DATA_XRD_RC INDEX (IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A 
>DATA_XRD_RC ORDER IDX_DATA_XRD_RC3 INDEX (IDX_DATA_XRD_RC1, 
>IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC INDEX (IDX_DATA_XRD_RC1, 
>IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC ORDER IDX_DATA_XRD_RC9 INDEX 
>(IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC INDEX 
>(IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC ORDER 
>IDX_DATA_XRD_RC3 INDEX (IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A 
>DATA_XRD_RC INDEX (IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A 
>DATA_XRD_RC ORDER IDX_DATA_XRD_RC9 INDEX (IDX_DATA_XRD_RC1, 
>IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC INDEX (IDX_DATA_XRD_RC1, 
>IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC ORDER IDX_DATA_XRD_RC3 INDEX 
>(IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC INDEX 
>(IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN (A DATA_XRD_RC ORDER 
>IDX_DATA_XRD_RC9 INDEX (IDX_DATA_XRD_RC1, IDX_DATA_XRD_RC4)) PLAN SORT 
>((A A NATURAL))
>
>Executing...
>Done.
>0 fetches, 0 marks, 0 reads, 0 writes.
>0 inserts, 0 updates, 0 deletes, 5761198 index, 33335 seq.
>Delta memory: 121544 bytes.
>Total execution time: 0:03:51 (hh:mm:ss) Script execution finished.
>
>As you see distinct (3:51 min vs 15sec) really slow down query.  I have 
>impression I use all needed indexing as so on. That is why I was looking for 
>option where I can select only first row from the query:
>
>SELECT * FROM DATA_SUMMARY a
>left join
>(select first 1 * from DATA_VIEW) as c on c.CON_ID_2=a.CON_ID_1
>
>unfortunately it doesn't work.
>
>If you have any other suggestions please let me know.
>
>Now I see where I was mistaken, Andrzej, I thought DATA_SUMMARY and DATA_VIEW 
>were two tables. Answering your question is impossible without 
>knowing the view definition, so please show us that (the 'fix' is even likely 
>to be in there since 15 seconds is also a long time for a table 
>of only a few thousand records) and tell us which fields each index in the 
>plans refer to.

One quick check you can do, is to see whether the plan is identical for

SELECT DISTINCT a.CON_ID, a.* FROM XRD_RC_DATA_VIEW_F

and

SELECT DISTINCT a.CON_ID+0 AS CON_ID, a.* FROM XRD_RC_DATA_VIEW_F

If the latter is quicker, I would still say that it is not necessarily fixing 
your problem, it could also be a case of hiding a problem with your view 
(without the view definition, all suggested "solutions" are basically guesses - 
probably based on experiences with Firebird, but without knowledge of whether 
that experience is relevant for your case or not).

Set

Reply via email to