|
columnstore
|
|||
---|---|---|---|
#18+
Добрый день, коллеги! У меня у базы имеются columnstore индексы, каждый день добавляю новые запили или обновляю их путем удалением и записью новых данных (именно сначала удалю, а потом вставлю новые). Нужно мне каждый раз пересоздавать индексы или же их как то обновлять, что бы производительность не падала, до этого я не когда не использовал columnstore поэтому как правильно сделать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 00:33 |
|
columnstore
|
|||
---|---|---|---|
#18+
Начните сначала - на что жалуетесь? (Производительность обновления или запросов) Можете измерить? Далее поподробнее о вашей базе - версия сервера, колумнстор кластерный или нет, секционирован или нет. Я знаю только один способ обслуживания кластерного колумнстора: у каждой роугруппы в каждом столбце хранится минимум и максимум значения, стало быть сервер может пропускать данную группу Rowgroup Elimination если она заведомо не удовлетворяет запросу. К сожалению эта фишка зависит от физического расположения записей, перестройка индекса, удаление и пересоздание никак не помогают. Помогает только превращение колумнстора в обычный роустор (без замечательной компрессии), построение кластерного индекса и превращение в колумнстор обратно. Для большой таблицы это требует много места для данных и логов и времени. Поэтому гораздо лучше это проделывать для секций (партиций). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 03:29 |
|
columnstore
|
|||
---|---|---|---|
#18+
t00 Добрый день, коллеги! У меня у базы имеются columnstore индексы, каждый день добавляю новые запили или обновляю их путем удалением и записью новых данных (именно сначала удалю, а потом вставлю новые). Нужно мне каждый раз пересоздавать индексы или же их как то обновлять, что бы производительность не падала, до этого я не когда не использовал columnstore поэтому как правильно сделать ? Вы пишете "до этого я не когда не использовал ", загадочная фраза. Формально получается, что вы все-таки использовали их, но опасаетесь в этом признаться? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 13:18 |
|
columnstore
|
|||
---|---|---|---|
#18+
t00, рекомендую ресурс Niko Neugebauer https://www.nikoport.com/2013/07/05/clustered-columnstore-indexes-part-1-intro/ ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 13:37 |
|
columnstore
|
|||
---|---|---|---|
#18+
t00 Добрый день, коллеги! У меня у базы имеются columnstore индексы, каждый день добавляю новые запили или обновляю их путем удалением и записью новых данных (именно сначала удалю, а потом вставлю новые). Нужно мне каждый раз пересоздавать индексы или же их как то обновлять, что бы производительность не падала, до этого я не когда не использовал columnstore поэтому как правильно сделать ? Вопрос первый: какая версия ms sql? Вопрос второй: а сколько строк? 1) Удалять индексы не надо при небольшом числе строк. Это стоит делать если меняется большой процент данных. 2) Сначала удалить, потом вставить -- это хуже чем обновить, особенно если меняется лишь часть полей 3) Если строк много, то лучше таблицу партиционировать (по какому принципу и сколько строк в партиции решить надо вам) Колоночные индексы плохо обновляются при большом числе строк в партиции, но в 2016 это стало лучше ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 17:11 |
|
columnstore
|
|||
---|---|---|---|
#18+
a_voronin 2) Сначала удалить, потом вставить -- это хуже чем обновить, особенно если меняется лишь часть полей чем хуже? https://www.nikoport.com/2014/03/17/clustered-columnstore-indexes-part-28-update-vs-delete-insert/ ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 21:26 |
|
columnstore
|
|||
---|---|---|---|
#18+
komrad a_voronin 2) Сначала удалить, потом вставить -- это хуже чем обновить, особенно если меняется лишь часть полей чем хуже? https://www.nikoport.com/2014/03/17/clustered-columnstore-indexes-part-28-update-vs-delete-insert/ Специфический кейс -- обновление большей порции данных. Плюс у них delete + bulk insert , а не insert. И я бы попробовал повторить тот тест на 2016+ . Есть ещё обновление всей партиции, но тогда truncate partition / insert или insert / switch partition ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 13:41 |
|
|
start [/forum/topic.php?fid=46&fpage=20&tid=1684513]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 277ms |
total: | 408ms |
0 / 0 |