Справка по подсчету корзин при создании таблицы в памяти в SQL Server 2016

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

У меня вопрос: когда я готовлю таблицу такого размера, какой размер сегмента я должен использовать в индексе?

Таблица начнется с небольшого размера, вероятно, всего в несколько сотен тысяч строк в апреле, но к концу финансового года она вырастет до максимального значения, указанного в предыдущих годах, и я не уверен, что это практически пустое ведро в у старта будут какие-то проблемы или если будет нормально иметь счет на отметке 30 миллионов.

заранее спасибо вам комментарии, предложения и помощь.

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

CREATE TABLE [PRD].[CTRL_IN_MEM]
(
    [FILE_LOAD_ID] INT NOT NULL,
    [RECORD_IDENTIFIER] BIGINT NOT NULL,
    [FLAG_KEY] SMALLINT NOT NULL,
    [APP_LEVEL_PART] BIT NOT NULL

--Line I'm not sure about
    CONSTRAINT [pk_CTRL_IN_MEM] PRIMARY KEY NONCLUSTERED HASH ([FILE_LOAD_ID], [RECORD_IDENTIFIER]) WITH (BUCKET_COUNT = 30000000),
    INDEX cci_CTRL_IN_MEM CLUSTERED COLUMNSTORE

) WITH (MEMORY_OPTIMIZED = ON, DURABILITY=SCHEMA_AND_DATA)

0 ответов

Другие вопросы по тегам