Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Создание агрегированной таблицы  [new]
misha_s
Member

Откуда:
Сообщений: 2
Подскажите решение пожалуйста.

Есть таблица, в которую записываются данные о показаниях приборов.
В таблице около 11 млн записей (около 3 записей в секунду), 6 полей.
По этой таблице нужна выборка — в виде агрегирования и мин макс значений по различным полям.
При построении индексов на первую таблицу выборка создается около минуты.
Эта выборка записывается во вторую таблицу, по сути представляющая собой вычисленные значения по первой таблице. Создается через сторнутую процедуру - через несколько update's с вычислениями. Получается около 100 тыс записей.
Из второй таблицы идет постоянная выборка данных (select с условиями)

Подскажите, пожалуйста, направление мысли (ссылку или правильное решение). Как без блокировки второй таблицы можно в ней проапдейтить данные ? Или с блокировкой на минимальное время.

Самое быстрое, конечно, создавать временную таблицу, потом дропить вторую таблицу и переименовывать временную таблицу, но какое решение правильное?
26 июл 11, 16:49    [11029595]     Ответить | Цитировать Сообщить модератору
 Re: Создание агрегированной таблицы  [new]
Raoul
Member

Откуда:
Сообщений: 177
misha_s
Самое быстрое, конечно, создавать временную таблицу, потом дропить вторую таблицу и переименовывать временную таблицу, но какое решение правильное?

Дропить необязательно, можно просто обнулить её (TRUNCATE TABLE) и залить данные. Я бы, пожалуй, так и сделал.
26 июл 11, 17:45    [11030015]     Ответить | Цитировать Сообщить модератору
 Re: Создание агрегированной таблицы  [new]
misha_s
Member

Откуда:
Сообщений: 2
Если не дропить, то нужно из временной таблицы копировать данные во вторую таблицу, что занимает определенное время, во время которого таблица будет не полной.
Каким образом в принципе решаются такие задачи на MSSQL?
27 июл 11, 15:58    [11034973]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить