Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / columnstore / 7 сообщений из 7, страница 1 из 1
13.07.2021, 00:33
    #40083468
t00
t00
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
columnstore
Добрый день, коллеги! У меня у базы имеются columnstore индексы, каждый день добавляю новые запили или обновляю их путем удалением и записью новых данных (именно сначала удалю, а потом вставлю новые). Нужно мне каждый раз пересоздавать индексы или же их как то обновлять, что бы производительность не падала, до этого я не когда не использовал columnstore поэтому как правильно сделать ?
...
Рейтинг: 0 / 0
13.07.2021, 03:29
    #40083474
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
columnstore
Начните сначала - на что жалуетесь? (Производительность обновления или запросов)
Можете измерить?

Далее поподробнее о вашей базе - версия сервера, колумнстор кластерный или нет, секционирован или нет.

Я знаю только один способ обслуживания кластерного колумнстора: у каждой роугруппы в каждом столбце хранится минимум и максимум значения, стало быть сервер может пропускать данную группу Rowgroup Elimination если она заведомо не удовлетворяет запросу.
К сожалению эта фишка зависит от физического расположения записей, перестройка индекса, удаление и пересоздание никак не помогают.
Помогает только превращение колумнстора в обычный роустор (без замечательной компрессии), построение кластерного индекса и превращение в колумнстор обратно. Для большой таблицы это требует много места для данных и логов и времени.
Поэтому гораздо лучше это проделывать для секций (партиций).
...
Рейтинг: 0 / 0
13.07.2021, 13:18
    #40083560
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
columnstore
t00
Добрый день, коллеги! У меня у базы имеются columnstore индексы, каждый день добавляю новые запили или обновляю их путем удалением и записью новых данных (именно сначала удалю, а потом вставлю новые). Нужно мне каждый раз пересоздавать индексы или же их как то обновлять, что бы производительность не падала, до этого я не когда не использовал columnstore поэтому как правильно сделать ?


Вы пишете "до этого я не когда не использовал ", загадочная фраза. Формально получается, что вы все-таки использовали их, но опасаетесь в этом признаться?
...
Рейтинг: 0 / 0
13.07.2021, 13:37
    #40083567
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
columnstore
t00,

рекомендую ресурс Niko Neugebauer

https://www.nikoport.com/2013/07/05/clustered-columnstore-indexes-part-1-intro/
...
Рейтинг: 0 / 0
13.07.2021, 17:11
    #40083611
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
columnstore
t00
Добрый день, коллеги! У меня у базы имеются columnstore индексы, каждый день добавляю новые запили или обновляю их путем удалением и записью новых данных (именно сначала удалю, а потом вставлю новые). Нужно мне каждый раз пересоздавать индексы или же их как то обновлять, что бы производительность не падала, до этого я не когда не использовал columnstore поэтому как правильно сделать ?


Вопрос первый: какая версия ms sql?
Вопрос второй: а сколько строк?

1) Удалять индексы не надо при небольшом числе строк. Это стоит делать если меняется большой процент данных.
2) Сначала удалить, потом вставить -- это хуже чем обновить, особенно если меняется лишь часть полей
3) Если строк много, то лучше таблицу партиционировать (по какому принципу и сколько строк в партиции решить надо вам)

Колоночные индексы плохо обновляются при большом числе строк в партиции, но в 2016 это стало лучше
...
Рейтинг: 0 / 0
13.07.2021, 21:26
    #40083659
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
columnstore
a_voronin

2) Сначала удалить, потом вставить -- это хуже чем обновить, особенно если меняется лишь часть полей

чем хуже?
https://www.nikoport.com/2014/03/17/clustered-columnstore-indexes-part-28-update-vs-delete-insert/
...
Рейтинг: 0 / 0
15.07.2021, 13:41
    #40084129
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
columnstore
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
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / columnstore / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]