Я пытаюсь выяснить количество IP-адресов, соответствующих каждой большой категории (big_cat). Для этого мне нужно присоединиться к 3 таблицам.
У меня есть следующие 3 таблицы:
Large categories:
small_cat | big_cat
final_parsed_userlogs_access_longuri:
ip | uri
all_categories_from_all_unique_uri:
uri | small_cat
И следующий запрос SQL в Access 2016:
SELECT COUNT(Final_parsed_userlogs_access_longuri.ip), Large_categories.big_cat
FROM (All_categories_from_all_unique_uri INNER JOIN Final_parsed_userlogs_access_longuri ON All_categories_from_all_unique_uri.uri = Final_parsed_userlogs_access_longuri.uri) INNER JOIN Large_categories ON All_categories_from_all_unique_uri.small_cat = Large_categories.small_cat
GROUP BY Large_categories.big_cat;
Длина таблиц составляет 2,2 миллиона, 4,4 миллиона и 1,1 миллиона строк (в указанном ранее порядке). Очевидно, что это займет довольно много времени, но я выполняю этот запрос уже 1,5 часа, и он все еще не завершен.
Есть ли способ ускорить выполнение этого запроса? Я уже проиндексировал все поля. Если это невозможно; Есть ли способ получить общее представление о том, сколько времени займет этот запрос (через какое-то уравнение или что-то еще)?