> > хотя в запросах работала нормально, но так как
> > это была не фатальная потеря, и использовалось всего в одном месте
> > решил что проще обойтись.
>
> Просто надо закомментировать триггер, а после восстановления
> раскомментировать и перекомпилить
Пасиб ;) вроде уже догадался ;)

On 24 дек, 13:15, A7exander <[EMAIL PROTECTED]> wrote:
> Частично места где Yaffil молотит быстрее уже нашел.
> Есть простой запрос (таблица smoves - 3 млн. записей):
>
> select k.id_knames, sum(sm_quant)
>       from smoves s, knames k
>       where
>       s.id_knames=k.id_knames and s.id_sklnames=1
>       and k.nm_folder=0 and s.sm_date<:ost_date
>       and k.nm_id_knames=1
>       and k.nm_parent=1660
>       group by k.id_knames
>       having sum(sm_quant)>0
>
> на Yaffil отрабатывает всреднем 26 секунд
> PLAN SORT (JOIN (K INDEX (KNAMES_IDX2),S INDEX
> (SMOVES_IDX_SK_NM,SMOVES_IDX1)))
>
> на Firebird-2.0.3.12981 отрабатывает всреднем 140секунд
> PLAN JOIN (K ORDER KNAMES_IDX1 INDEX (KNAMES_IDX2), S INDEX
> (SMOVES_IDX_SK_NM, SMOVES_IDX1))
>
> НО! индекс SMOVES_IDX1 по полю s.sm_date нерезультативен, поскольку
> дата берется либо последняя либо близка к ней,
> и если заставить оба сервера не использовать его, заменив
> and k.nm_folder=0 and s.sm_date<:ost_date
> на
> and k.nm_folder=0 and coalesce(s.sm_date, cast('now' as
> date))<:ost_date
> то ситуация резко меняется - птица отрабатывает за 63мс а дятел за
> 110мс!
> тоесть у меня предположение что дятел быстрее молотит нерезультативные
> индексы,
> уже нашел несколько таких мест в своей БД. Прийдется поборотся с
> пережитками прошлого ;)

Кстати уже исправил два десятка запросов с вышеприведенным диагнозом,
вроде
все встает на свои места :) других аномалий пока не замечено

Reply via email to