В Vertica, вы должны выделять строки в свои логические таблицы? - PullRequest
1 голос
/ 27 сентября 2011

Предположим, ваша логическая таблица:

CREATE TABLE employee(
  name VARCHAR,
  university VARCHAR
);

Теперь у вас есть только несколько университетов. Таким образом, вы могли бы исключить название университета:

CREATE TABLE employee(
  name VARCHAR,
  university integer references university(university)
);

CREATE TABLE university(
  university identity,
  name varchar
);

У вас есть вопросы такого рода:

SELECT employee 
FROM employee as e1 
WHERE EXISTS 
      (SELECT employee 
       FROM employee as e2 
       WHERE e1.name = e2.name AND e1.university <> e2.university)

Что меня интересует, так это: ускоряет ли вторая логическая схема, где имя «вычеркнуто»? Возможно, потому что e1.university <> e2.university - это сравнение целых чисел, а не строк.

1 Ответ

2 голосов
/ 07 апреля 2012

Я знаю, что это старый вопрос, но ответ, как правило, нет. Кодировка, которую делает продукт, обычно сужает столбец настолько, что он будет быстрее, чем должно произойти объединение.

...