Справка по подсчету корзин при создании таблицы в памяти в 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)