У меня всегда хинты были выключены.
Трассировку своих запросов показывать не хочу по политическим причинам.
Вот что показывает трассировка запросов, которые привел raz:
для запроса №1:
PHP код:
FROM INVENTTRANS A WHERE ((DATAAREAID=?) AND (((((INVENTTRANSID=?) AND (ITEMID=?)) AND (STATUSISSUE=?)) AND (DATESTATUS=?)) AND (STATUSRECEIPT=?))) OPTION(FAST 20)
для запроса №2:
PHP код:
FROM INVENTTRANS A WHERE ((DATAAREAID=?) AND (((((STATUSRECEIPT=?) AND (STATUSISSUE=?)) AND (ITEMID=?)) AND (DATESTATUS=?)) AND (INVENTTRANSID=?))) OPTION(FAST 20)
Для эксперимента, я включил хинты. И они стали попадать в запрос - так же как у raz'а.
для запроса №1:
PHP код:
FROM INVENTTRANS A(INDEX(I_177STATUSITEMIDX)) WHERE ((DATAAREAID=?) AND (((((INVENTTRANSID=?) AND (ITEMID=?)) AND (STATUSISSUE=?)) AND (DATESTATUS=?)) AND (STATUSRECEIPT=?))) OPTION(FAST 20)
для запроса №2:
PHP код:
FROM INVENTTRANS A(INDEX(I_177STATUSITEMIDX)) WHERE ((DATAAREAID=?) AND (((((STATUSRECEIPT=?) AND (STATUSISSUE=?)) AND (ITEMID=?)) AND (DATESTATUS=?)) AND (INVENTTRANSID=?))) OPTION(FAST 20)
Но у меня всегда хинты были выключены. То есть, все-таки последовательность важна. Возможно, у меня слетала статистика запросов или индексы. Но у меня обновление статистики работает регулярно как и реиндексация.
Пока не поменял порядок полей в запросе - не ускорилось выполнение.