Cytat(uupah5 @ 6.07.2011, 16:09:10 )

pole status występuje kilkukrotnie z czego ostatni raz jest wzajemnie wykluczający się z przedostatnim
Nie wyklucza się - w obydwu przypadkach jest pole status + OR
Cytat(uupah5 @ 6.07.2011, 16:09:10 )

więc może jednak przekonstruować to zapytanie tak, aby pole status występowało samodzielnie i nadrzędnie, czyli coś w stylu:
status = a and (....)
or
status = b and (...)
Teraz zrobiłem tak:
SELECT DISTINCT T.NumerRef, T.DataWyjazdu, T.ID_grupa_transportowa ,
T.Pojazd, T.Datetime_do_kiedy_cena_tradycyjna, T.AnulowanyFE2,
T.HD, T.IloscTowaruRzeczywista, T.Multistop, T.DataDostarczenia,
PonaglenieDostarczenia, PonaglenieAwizacji,
TIMESTAMPDIFF(MINUTE, NOW(), T.DateRealizacji) AS CzasDoKoncaRealizacji,
T.PotwierdzeniePrzyjeciaZmian, T.IloscTowaru, T.Odleglosc, T.TerminWaznosci,
T.GodzinaRealizacji, (DataDodaniaNaGielde + INTERVAL TerminWaznosci MINUTE) AS LicytacjaDo,
T.Gielda, T.ID, T.DateRealizacji, T.STATUS, T.Numer, RodzajCiezarowki, ROUND(Cena,2) AS Cena,
Waluta
FROM
m_transporty_miejsca AS TM LEFT JOIN
m_transporty AS T ON (T.ID=TM.ID_transport)
WHERE
1 AND
(T.AnulowanyFE2='0' OR T.DateRealizacji>='2011-06-30') AND
1 AND
T.Odleglosc>='9' AND
T.Odleglosc<='102' AND
T.ImportFE='1' AND
((T.Miejsce='akt' AND ((T.STATUS='przedstawiony' AND 1)
OR (T.STATUS='gielda' AND T.Gielda='1' AND 1)
OR T.ID_przewoznik='72'))
OR (T.STATUS='zaksięgowane w SAP' AND T.DataDostarczenia IS NULL AND T.ID_przewoznik='72'))
ORDER BY T.ID
i dalej nic.
Ze statusem to kłopot taki, że chcę wyswietlać rekordy w różnych statusach, ale przy każdym statusie muszą być spełnione dodakowe (za każdym statusem różne) warunki. Wystarczy, że zajdzie któryś z tych warunków:
1. T.Status='gielda' AND T.Gielda='1' AND 1 AND T.Miejsce='akt
2. T.Status='przedstawiony' AND 1 AND T.Miejsce='akt
3. T.ID_przewoznik='72 AND T.Miejsce='akt (bez różnicy na status)
4. T.Status='zaksięgowane w SAP' AND T.DataDostarczenia IS NULL AND T.ID_przewoznik='72'
Cytat(uupah5 @ 6.07.2011, 16:09:10 )

jeśli jest to wykonalne, to dać potem index na status. btw to musi być varchar?
Status ma index - tak jest varchar
Cytat(uupah5 @ 6.07.2011, 16:09:10 )

oraz rozumiem struktura jest świadomie zdenormalizowana?
Przypadek

Cytat(uupah5 @ 6.07.2011, 16:09:10 )

a na marginesie, 0.8s to jest faktycznie problem?
Bardzo długo

12razy dłużej niż bym chciał
Cytat(rollen @ 6.07.2011, 21:14:40 )

TomASS ma rację spróbuj jakoś przebudować tę część ze STATUS, bo jest całkowicie nieczytelana...
tylko jak ? Moja wyobraźnia chyba tego nie ogarnia już:/
Cytat(rollen @ 6.07.2011, 21:14:40 )

Wskazałeś też, że użyty został indeks ImportFE1: (ImportFE). Nie wiem jakie dane masz w columnie ImportFE, ale wydaje mi się, że to jakiś status z ograniczony do kilku wartości.
dwie możliwości - 0 oraz 1
Cytat(rollen @ 6.07.2011, 21:14:40 )

Taki indeks staje ję mało selektywny. Proponuję go rozszerzyć o T.Odległość.
pole odegłość to jedna z 20 możliwośći
dzięki chłopaki - pomóżcie jeszcze troszkę, może coś się uda.