Эффективно ли использовать широкую временную таблицу только с одним регулярно обновляемым столбцом?
Я не смог определить, как хранятся истории временных таблиц. Если у вас есть таблица с несколькими столбцами данных nvarchar и одним столбцом количества запаса, который регулярно обновляется, хранит ли SQL Server копии статических столбцов для каждого изменения количества запаса или существует объектно-ориентированный способ хранения данных? Я хочу включить все столбцы в историю, потому что, возможно, будут редкие изменения в столбцах nvarchar, но опасайтесь размера таблицы, если миллионы qty-обновлений дублируют другие столбцы.
1 ответ
Я предлагаю использовать временную таблицу SQL Server только для значений, которые необходимо отслеживать, иначе фиксированные неизменяемые значения атрибута будут дублироваться при каждом изменении. SQL Server сохраняет новую строку всякий раз, когда происходит обновление строки. Смотрите документы:
ОБНОВЛЕНИЯ: В ОБНОВЛЕНИИ система сохраняет предыдущее значение строки в таблице истории и устанавливает значение для столбца SysEndTime равным времени начала текущей транзакции (в часовом поясе UTC) на основе системных часов.
Вам нужно переместить ваши фиксированные атрибуты / поля varchar в другую таблицу и использовать соотношение 1:1 или что-либо еще.
Проверьте также другие соответствующие вопросы под temporal-tables
тег:
SQL Server - временная таблица - затраты на хранение