Это сценарии генерации из класса хранилища данных в моем универе: https://www.dropbox.com/sh/3pk8hsfe0u55l6u/AADTathEAEBiYd2qYX38qGSga?dl=0
Задача состоит в том, чтобы создать хранилище данных с использованием схемы звезды из операционной базы данных: операционная база данных
Задача состоит в том, чтобы удалить определитель измерения и построить сводную таблицу следующим образом: звездообразная схема
Последний шаг - создание таблицы фактов из нескольких измененных 'таблицы измерений
create table Final as
select O.Citizenship, O.Year, O.Grade, O.Total_Students_Overall, L.Total_Students_Listening, R.Total_Students_Reading, W.Total_Students_Writing, S.Total_Students_Speaking
from OverallFactNew O
inner join ListeningFactNew L on O.countrycode = L.countrycode and O.citizenship = L.citizenship and O.year = L.year and O.grade = L.grade
inner join ReadingFactNew R on R.countrycode = L.countrycode and R.citizenship = L.citizenship and R.year = L.year and R.grade = L.grade
inner join WritingFactNew as W on (R.countrycode = W.countrycode and R.citizenship = W.citizenship and R.year = W.year and R.grade = W.grade)
inner join SpeakingFactNew as S on (S.countrycode = W.countrycode and S.citizenship = W.citizenship and S.year = W.year and S.grade = W.grade);
Он застрял (когда я запустил объяснение по этому запросу, объединение слиянием занимает 300 миллионов строк, но мои данные для объединения составляют только 900 строк * 4 таблицы.
Я исследовал операцию объединения в psql. Она показала, что она не возвращает автоматически отдельные строки (всегда декартовы произведения).
Университет научил нас oracle sql разработчику. Запрос выполнялся за секунды, довольно быстро во вкусе oracle. Я не знаю, почему это может произойти. (Кстати, я думаю, что oracle документы отстой, поэтому я обратился к psql)
Спасибо за вашу помощь.