Лучший способ архивировать таблицу вертикальных ключей в SQL Server? - PullRequest
0 голосов
/ 01 июля 2019

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

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

Id BIGINT IDENTITY(1,1) NOT NULL,
BatchProcessId INT NOT NULL,
HeaderId INT NOT NULL,
SequenceNumber INT NOT NULL

Данные, хранящиеся в этой таблице, действительно предназначены только для аудита и не нуждаются в эффективном поиске. Он также очень быстро увеличивается по размеру очень быстро по вертикали, поскольку исходная таблица финансовых транзакций имеет сотни миллионов строк, и эта таблица может содержать миллионы записей HeaderId \ SequenceNumber для данного BatchProcessId.

Так что я думаю, что мог бы сохранить это как строку в каком-то формате в хранилище больших двоичных объектов или что-то в этом роде? Есть лучший способ сделать это? Я мог бы сохранить BatchProcessId, а затем сгладить комбинации HeaderId / SequenceNumber в строку, например [1000,1] [1000,2] [1001,1] ...

Тогда, если данные когда-либо нужно будет проверять, можно использовать функцию, чтобы сделать данные вертикальными и доступными для поиска. Есть ли преимущества этого подхода по сравнению с простым хранением данных по вертикали? Я пытаюсь резко уменьшить размер стола. Можно ли сжать столбец BLOB, если я тоже пойду по этому пути?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...