/ / Columnstore індекс належного використання - sql, sql-server, database, tsql, optimization

Правильне використання індексу Columnstore - sql, sql-server, database, tsql, optimization

Я тільки дізнався про чудеса колонового магазинуіндекси та способи "Використання індексу стовпців стовпців для досягнення до 10x приросту продуктивності запитів порівняно з традиційним орієнтованим на рядки сховищем, а також до 7x стиснення даних за розміром нестиснених даних".

З такими значними збільшеннями продуктивності, чи дійсно є якісь причини НЕ використовувати їх?

Відповіді:

4 для відповіді № 1

Основним недоліком є ​​те, що вам доведеться складночас читання тільки частини індексу, якщо запит містить вибірковий предикат. Є способи зробити це (розбиття на сегменти, усунення сегментів), але вони не є особливо легкими для надійної реалізації, і вони не масштабуються до складних вимог.

Для робочих навантажень лише для сканування індекси стовпців дуже ідеальні.


4 для відповіді № 2

Колоночні індекси особливо корисні для DataWarehousing (DW). Це означає, що ви виконуватимете лише оновлення або видалення в певний час.

Це пов'язано з їх особливою конструкцією з дельта-завантаженням і більшою кількістю функцій. Це відео показуватиме великі деталі та приємний базовий огляд того, що саме відрізняє Колоночний індекс.

Традиційний

Якщо у вас, однак, висока I / O (вхід і вихід) програми; Індекс Columnstore не є ідеальним, оскільки традиційний індексування рядків знайде та керуватиме (використовуючи рядки, знайдені через індекс) у цій конкретній цілі. Прикладом цього може бути програма для банкоматів, яка часто змінює значення рядки рахунків даних осіб.

ColumnStore

Індексування колонок індекси по всьому КОЛОНКИ що не є ідеальним у цьому випадку, оскільки значення рядків будуть поширюватися по всій сегментації (столпіндекси).

Я дуже рекомендую відео!

Я також хочу детально зупинитися на некластерному чи кластерному стовпчику стовпців:

Некластерний стовпчик стовпців (оновлення 2012 року) зберігає ВЕСЬ Дані знову означають (2X даних) в два рази більше даних.

Індекс індексу стовпців у кластері (оновлення у2014) займає лише 5 Мб для 16 ГБ даних. Це пов'язано з RTE (кодування за часом виконання), яке зберігає кількість дублікатів даних у кожному стовпці. Зробити індекс займає менше додаткового місця для зберігання.


2 для відповіді № 3

Привіт А дуже докладне пояснення стовпців зберігати індекс можна знайти тут.

Індекс стовпців

Індекс стовпчика стовпців - це технологія для зберігання, отримання та управління даними за допомогою формату даних стовпців, який називається стовпцем стовпців.

Ця функція була введена з SQL Server2012 рік, який має на меті значно прискорити час обробки загальних запитів сховищ даних. Основні цілі індексів стовпців є придатними для типових наборів даних сховищ даних і поліпшення продуктивності запиту, коли дані витягуються з величезних наборів даних.

Вони є індексами на основі стовпців, які здатніперетворити досвід сховищ даних для користувачів, дозволяючи більш високу продуктивність для звичайних запитів сховищ даних, таких як фільтрування, агрегування, групування і запити зі з’єднанням зірок. Вони зберігають дані у стовпчику замість рядків, як це роблять індекси.