
January 14th, 2011, 08:40 AM
|
|
Registered User
|
|
Join Date: Jan 2011
Posts: 2
Time spent in forums: 1 h 5 m 56 sec
Reputation Power: 0
|
|
|
Wrong plan is used ?!?
Recently I converted my database from interbase 2009 to firebird 2.5. Both databases are 100% at this moment identical. I noticed that few of my queries which I am using runing extremely slow on firebird. One of those queries on interbase is executed in less then 100ms and on firebird it needs more then 14sec, so I guess that firebird is calculating wrong plan.
Any idea? Thanks for help!
Code:
select mpvp_cene.*
from mpvp_cene
left join new_view_get_zalihe on new_view_get_zalihe.artid = mpvp_cene.artid and
new_view_get_zalihe.magid = mpvp_cene.magid
where mpvp_cene.magid = 1
fast interbase plan
Code:
PLAN MERGE (SORT (MPVP_CENE INDEX (RDB$FOREIGN131)),SORT (SORT (JOIN (NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE PRIJEMNICE_H NATURAL,NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE PRIJEMNICE_D INDEX (RDB$FOREIGN77)))
PLAN SORT (JOIN (NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE PRIJEMNICE_H NATURAL,NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE INTERNI_PRENOS INDEX (RDB$PRIMARY10),NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE PRIJEMNICE_D INDEX (RDB$FOREIGN77)))
PLAN SORT (JOIN (NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE RACUNI_H NATURAL,NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE RACUNI_D INDEX (RDB$FOREIGN91)))
PLAN SORT (JOIN (NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE OTPIS_H NATURAL,NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE OTPIS_D INDEX (RDB$FOREIGN71)))
PLAN SORT (JOIN (NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE TREBOVANJE_H NATURAL,NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE TREBOVANJE_D INDEX (RDB$FOREIGN105)))))
slow firebird plan
Code:
PLAN JOIN (MPVP_CENE INDEX (FK_MPVP_CENE_MAGID)SORT (JOIN (NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE PRIJEMNICE_D INDEX (INTEG_394), NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE PRIJEMNICE_H INDEX (XPKPRIJEMNICE_H)))
PLAN SORT (JOIN (JOIN (NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE PRIJEMNICE_D INDEX (RDB$INTEG_394EW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE INTERNI_PRENOS INDEX (FK_INTERNI_PRENOS_MAGID)), NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE PRIJEMNICE_H INDEX (XPKPRIJEMNICE_H)))
PLAN SORT (JOIN (NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE RACUNI_D INDEX (RDB$FOREINTEG_425IEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE RACUNI_H INDEX (XPKRACUNI_H)))
PLAN SORT (JOIN (NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE OTPIS_H INDEX (RDB$FOREIGN4INTEG_392GET_ZALIHE NEW_VIEW_SUM_ZALIHE OTPIS_D INDEX (OTPIS_D_IDX1)))
PLAN SORT (JOIN (NEW_VIEW_GET_ZALIHE NEW_VIEW_SUM_ZALIHE TREBOVANJE_D INDEX (RDB$FOREIGN35), INTEG_387ZALIHE NEW_VIEW_SUM_ZALIHE TREBOVANJE_H INDEX (XPKTREBOVANJE_H))))
|