Вставляет в индексированные представления - PullRequest
1 голос
/ 24 марта 2012

Greetings Overflowers,

Существует ли СУБД SQL, которая позволяет мне создавать индексированное представление, в которое я могу вставлять новые строки без изменения исходных таблиц представления?Мне нужно будет запросить это представление после выполнения вставок только для просмотра.Если ответ «нет», какие другие методы могут сделать эту работу?Я просто хочу объединить набор строк, поступающих с другого сервера, с набором строк в созданном представлении - в определенном порядке - чтобы иметь возможность выполнять быстрые запросы к объединенному набору, то есть индексированному представлению, без необходимости сохраненияполученный набор на диске.Я не уверен, что использование базы данных в памяти будет работать хорошо, поскольку объединенные наборы растут нелепо?

Как вы думаете, ребята?

1 Ответ

1 голос
/ 30 июня 2012

Ну, нет поддерживаемого способа сделать это, поскольку представление должно основываться на некоторых таблицах.

Кроме того, индексированные представления не предназначены для такого использования.Вам не нужно вставлять какие-либо данные в индексное представление , думая , что вы ускорите поиск данных.

Я предлагаю вам сохранить свой взгляд таким, какой он есть.И затем создайте промежуточную таблицу, в которой созданы соответствующие индексы, в которую вы вставляете данные, поступающие из внешней системы.

Промежуточная таблица должна быть обрезана в любое время, когда вы хотите избавиться от данныхпрямо перед вставкой новых данных).Это должно быть сделано в транзакции SNAPSHOT ISOLATION, чтобы ваши существующие запросы не считывали грязные данные или взаимоблокировку.

Тогда у вас есть два варианта:

  1. Используйте предложение UNION ALL, чтобы объединить результаты из представления и промежуточной таблицы, когда вы хотите получить свои данные.
  2. Если промежуточная таблица не должна объединяться, а должна объединяться внутри, то, возможно, вы можете интегрировать ее в индексированное представление.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...