Access problemy: przyspieszenie bazy, indeksowanie

0

Witam!

Sprawa wygląda następująco
Używam Access-a 2002. Mam dość dużą bazę wypożyczalni DVD i mam problem z jednym zapytaniem, ale od początku

Mam tabelę w której mam Nazwiska klientów i daty wypożyczenia DVD. Tabela nazywa się tab12 a pola w tej tabeli odpowiednio dla Nazwiska ‘Nazwisko’ i dla daty wypożyczenia ‘data_wypoz’

Chcę wyszukać klientów którzy np. wypożyczyli DVD w listopadzie a nie wypożyczali żadnego DVD wcześniej czyli np. od stycznia do października
Stworzyłem zapytanko które działa ale przy małych zakresach dat jeśli wezmę takie zakresy dat jakie potrzebuję access się zawiesza (raz nawet czekałem godzinkę z nadzieją że się „ocknie” ale lipa)

Zapytanie wygląda tak

SELECT Tab12.nazwisko.Tab12.data_wypoz
FROM Tab12
WHERE ((Tab12.data_wypoz BETWEEN '2010-11-01' AND '2010-11-30') AND Tab12.nazwisko IS NOT NULL)AND(Tab12.nazwisko NOT IN(SELECT Tab12.nazwisko FROM Tab12 WHERE Tab12.data_wypoz BETWEEN '2010-01-01' AND '2010-10-31'));

Poczytałem coś na temat przyspieszania bazy i indeksów w bazach ale znalazłem tylko podstawowe informacje które niczego nie przyspieszają. Czy ktoś może mi poradzić jak skorzystać z tych indeksów ? Jak ustawić opcję w bazie lub zmienić zapytanie. Z góry dzięki za odpowiedzi.

klimba

0

index:
create index ss on po (acct);

zapytanie zmień na :
SELECT Tab12.nazwisko.Tab12.data_wypoz
FROM Tab12 left join (SELECT Tab12.nazwisko FROM Tab12 WHERE Tab12.data_wypoz BETWEEN '2010-01-01' AND '2010-10-31') as A on
a.nazwisko = Tab12.nazwisko
WHERE ((Tab12.data_wypoz BETWEEN '2010-11-01' AND '2010-11-30') AND Tab12.nazwisko IS NOT NULL)AND
(a.nazwisko is null));

0

znaczy index create index ss on tab12 (nazwisko);

1 użytkowników online, w tym zalogowanych: 0, gości: 1