Redshift очень медленный, когда CREATE TABLE с внешним ключом - PullRequest
0 голосов
/ 09 апреля 2020

У меня был оператор создания таблицы, который занимал много времени, дважды отменял его и перезапускал, думая, что это была какая-то странная ошибка в матрице, но после этого ничего не получалось. Заявление было примерно таким:

CREATE TABLE events (
    evId varchar(100) primary key,
    tmtsp timestamp sortkey,
    sessId  varchar(100) not null distkey,
    fId  varchar(200) not null REFERENCES sources(fId),
    timezoneOffset integer
    ...
)

Виновным был внешний ключ ... удаление его сделало утверждение мгновенным. Таблица sources, которая имеет около 25 тыс. Строк, имеет fId в качестве первичного ключа, но не как distkey - я предполагаю, что это может быть проблемой, но, поскольку я прочитал, что Redshift игнорирует ограничения и использует их только в процесс оптимизации запросов, который я не ожидал, возможно, (?) будет проходить через таблицу источников перед созданием таблицы.

В любом случае, distkey следует изменить на fId в таблице источников.

Тем не менее, не совсем уверен, что здесь происходит - кто-нибудь может пролить свет на то, почему это происходит? Ie, что делал красное смещение при создании таблицы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...