Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Обновление данных таблицы / 7 сообщений из 7, страница 1 из 1
09.06.2020, 08:51
    #39967259
reaque
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление данных таблицы
Имеется таблица "Номенклатура" на 30+ млн строк и около 30 столбцов.
Периодически, например, раз в месяц формируется запрос к этой таблице с определенным набором сложных фильтров, результат которого сохраняется в отдельную таблицу "НоменклатураМИН" (примерно на 10 млн строк) и 15 столбцов.
В течение месяца вновь сформированная таблица используется для выполнения к ней запросов.
Через месяц таблица перезаписывается следующим алгоритмом:

1. удаляем все индексы на таблицу НоменклатураМИН (drop index ...)
2. очищаем таблицу НоменклатураМИН (truncate table ...)
3. записываем результат запроса к базовой таблице (insert into НоменклатураМИН select ... from Номенклатура)
4. создаем индексы (create index ...)

Возможно у oracle есть более оптимальное решение поставленной задачи?
...
Рейтинг: 0 / 0
09.06.2020, 09:21
    #39967267
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление данных таблицы
По современным меркам и 10, и 30 млн. - одинаково немного.
Если у вас на меньшем наборе данных запрос работает заметно быстрее, повод разобрать план запроса.

И materialized view может помочь.
...
Рейтинг: 0 / 0
09.06.2020, 20:19
    #39967564
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление данных таблицы
Индексы можно не удалять, а делать их сначала UNUSABLE, потом REBUILD.

И действительно, матвью с подходящим вам принципом обновления данных как раз для таких целей и придумана. Сама обновит содержимое, например, по расписанию.
...
Рейтинг: 0 / 0
10.06.2020, 09:05
    #39967695
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление данных таблицы
Правильный Вася,

В жизни бывает что табличка нужна месяц и еще чуть-чуть (что-то не успели, что-то не так сформировали и тд)

имхо, раз в месяц (ето ж всего 12раз в году) пусть заполняют по кнопке

.....
stax
...
Рейтинг: 0 / 0
10.06.2020, 10:55
    #39967743
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление данных таблицы
Stax
табличка нужна месяц и еще чуть-чуть


Знакомо. Бухгалтер говорит: у меня остаток неправильный. Вчера был правильный. Сделай, как было вчера.
...
Рейтинг: 0 / 0
11.06.2020, 03:21
    #39968094
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление данных таблицы
Stax,
мои слова этому не противоречат. Упомянутый мной "подходящий принцип обновления" может быть и ручным, и автоматическим с запасом времени. Всё настраивается.
...
Рейтинг: 0 / 0
11.06.2020, 08:49
    #39968107
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление данных таблицы
Правильный Вася
Stax,
мои слова этому не противоречат. Упомянутый мной "подходящий принцип обновления" может быть и ручным, и автоматическим с запасом времени. Всё настраивается.


да не вопрос, я ж не против
я вообще кнопкой звпускал "ночной месячный" job
можно делать наоборот, отключать из интерфейса

.....
stax
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Обновление данных таблицы / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]