powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MS SQL 2019 использование ColumnStore индексов паралельно с построчными (стандартными)?
7 сообщений из 7, страница 1 из 1
MS SQL 2019 использование ColumnStore индексов паралельно с построчными (стандартными)?
    #39925491
Pvase
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть большая база, в ней несколько таблиц фактов по несколько десятков миллионов строк. Решил их перевести на ColumnStore. Заменил кластерные индексы на ColumnStore. В результате время выборки в некоторых запросах сократилось в 5-10 раз. Но некоторые запросы так и остались выполняться долго. Но проблема в том, что в эти таблицы ночью грузятся еще данные, а потом еще и пересчитываются. Так вот было замечено на одной таблице некоторое странное поведение. 1 - при ее пересчете Tempdb выростал в сотни раз, с 50 мб до 85 ГБ (причем сама таблица по данным SQL занимает около 15 ГБ). 2 - вставка данных существенно замедлилась.
Чтобы решить эту проблему, убил все индексы на таблицу и оставил только один ColumnStore. Производительность загрузки возросла, но некоторые запросы по выборке замедлились. Возникает такой вопрос, как использовать эти ColumnStore индексы, надо ли дополнительно стандарнтые индексы, как грузить данные, отключать все индексы или нет, как обновлять данные, снова отключать индексы или нет? В общем нужна доп информация по настройке и использовании этих индексов. Буду очень благодарен за такую информацию.
Для справки. В этой таблице - 60 млн. строк. за ночь загружается и обновляется около 300 тысяч строк. Но может и больше. Потом по этой таблице строятся итоговые таблицы с результатами от 500 тысяч до 10 млн. строк путем выборки из главной таблицы и сложных расчетов остатков и оборотов.
...
Рейтинг: 0 / 0
MS SQL 2019 использование ColumnStore индексов паралельно с построчными (стандартными)?
    #39925562
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pvase,

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

Типовой сценарий использования - это выполнение агрегирующих запросов и добавление строк. Секционирование допускается с целью упрощения обслуживания, например, архивации или удаления устаревших данных. Читайте справку и ищите use case, у MS достаточно для этого информации.
...
Рейтинг: 0 / 0
MS SQL 2019 использование ColumnStore индексов паралельно с построчными (стандартными)?
    #39925568
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у вас oltp, то просто page-сжатие включите, тем более что объем в 60 млн строк весьма невелик.
Но для интереса можно помониторить планы в момент роста потребления tempdb
...
Рейтинг: 0 / 0
MS SQL 2019 использование ColumnStore индексов паралельно с построчными (стандартными)?
    #39925598
Pvase
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта база, как раз используется для OLAP кубов. Только расчет в кубах остатков по такой таблице фактов уходит в часы, а то и десятки часов, поэтому сделаны промежуточные теблицы, с которых и сторятся кубы. А чтобы получить эти промежуточные таблицы используются скрипты для расчета остатков и расчета сводных приходов/расходов.
В принципе - это таблица проводок, где указаны счета по дебету и кредиту, а также аналитики на этих счетах. И чтобы построить отчет Баланс на кубах или ФинРез с использованием формул расчетов для измерений и пришлось делать эти промежуточне таблицы, потому что без них кубы могли процессироваться больше суток.
...
Рейтинг: 0 / 0
MS SQL 2019 использование ColumnStore индексов паралельно с построчными (стандартными)?
    #39925629
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pvase,

организуйте процесс так, чтобы в колоночную таблицу производилась только вставка. Если в колоночной таблице есть фиксированная и обновляемая части, то можно секционировать таблицу на две секции. При этом изменяемую секцию можно усекать и загружать заново. Можете создать и две отдельные таблицы. Все подготовительные действия выполняйте в OLTP таблицах.
...
Рейтинг: 0 / 0
MS SQL 2019 использование ColumnStore индексов паралельно с построчными (стандартными)?
    #39927582
Pvase
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Pvase,

организуйте процесс так, чтобы в колоночную таблицу производилась только вставка. Если в колоночной таблице есть фиксированная и обновляемая части, то можно секционировать таблицу на две секции. При этом изменяемую секцию можно усекать и загружать заново. Можете создать и две отдельные таблицы. Все подготовительные действия выполняйте в OLTP таблицах.

Так и сделал. Спасибо, полное время загрузки сократилось вдвое.
...
Рейтинг: 0 / 0
MS SQL 2019 использование ColumnStore индексов паралельно с построчными (стандартными)?
    #39927747
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pvase
т? В общем нужна доп информация по настройке и использовании этих индексов. Буду очень благодарен за такую информацию.
Для справки. В этой таблице - 60 млн. строк. за ночь загружается и обновляется около 300 тысяч строк. Но может и больше. Потом по этой таблице строятся итоговые таблицы с результатами от 500 тысяч до 10 млн. строк путем выборки из главной таблицы и сложных расчетов остатков и оборотов.


Сделайте партиционирование совпадающие с партиционированием в кубе. Грузите порциями, попадающими в 1-2 партиции.

Мне доводилось на 1млд + строк делать колумнстор и партиционирование тут очень кстати.

Чем больше размер партиции, тем сложнее колумнстору обновляться.

На колумнсторе лучше работают аггрегаты и оконные функции. Прямые SELECT, выбирающие данные работают хуже. Если у вас MOLAP, то вы имеете дело с пряммым SELECT. Попробуйте ROLAP.

Обновляется колумнстор тяжелее, но если добавить памяти и процессоров, это не так будет чувствоваться.

60 млн строк не такой большой объем. 5 лярдов -- тогда есть о чем беспокоиться.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MS SQL 2019 использование ColumnStore индексов паралельно с построчными (стандартными)?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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