Próbuje połączyć 3 tabele ze sobą:
tabela sprzedaż- zawiera duża ilośc danych
tabela parametry produktu zawiera dużą ilosc danych
tabela sklepy - zaledwie kilkaset wierszy
Przy rozwiązaniu (diagram 1) kwerenda wykonuje sie bardzo wolno:
SELECT sprzedaz.[Nr sklepu], sprzedaz.[id produktu], sprzedaz.sprzedaz, sprzedaz.kraj, parametry_produktu.parametr1, parametry_produktu.parametr2
FROM (sprzedaz INNER JOIN sklepy ON sprzedaz.[Nr sklepu] = sklepy.[numer sklepu]) INNER JOIN parametry_produktu ON (sprzedaz.[id produktu] = parametry_produktu.[id produktu]) AND (sklepy.kraj = parametry_produktu.kraj);
Jeśli wstawie sztucznie do tabeli sprzedaż kolumne kraj i zrobie zapytanie za pomocą dwóch tabel, wszystko wykonuje sie bardzo szybko (diagram 2)
SELECT sprzedaz.[Nr sklepu], sprzedaz.[id produktu], sprzedaz.sprzedaz, sprzedaz.kraj, parametry_produktu.parametr1, parametry_produktu.parametr2
FROM sprzedaz INNER JOIN parametry_produktu ON (sprzedaz.kraj = parametry_produktu.kraj) AND (sprzedaz.[id produktu] = parametry_produktu.[id produktu]);
Jednak chciałbym to zrobić porządnie i nie musieć za każdym razem wypełniać tabeli sprzedaż dodatkową kolumną. Może ktoś wytłumaczyć dlaczego wariant 1 wykonuje się tak wolno?