Исследование эффективности применения индексов ColumnStore при выполнении SQL-запросов в Microsoft SQL Server 2016

Содержание

Слайд 2

Проблема исследования Все более сложные приложения взаимодействуют с базами данных. Причем

Проблема исследования

Все более сложные приложения взаимодействуют с базами данных. Причем получение

данных из базы является одним из узких мест приложения. Таким образом, оптимизация запросов к базе способна существенно повысить производительность приложения в целом.
Слайд 3

Проблема исследования

Проблема исследования

Слайд 4

Индексы COLUMN-STORE Отличительная особенность колоночных индексов в том, что они основаны

Индексы COLUMN-STORE

Отличительная особенность колоночных индексов в том, что они основаны на

колоночном хранении данных.

Рис. 1 Отличие column-store от row-store

Слайд 5

Индексы COLUMN-STORE Рис. 2 Отличие column-store от row-store Некластеризованный индекс columnstore

Индексы COLUMN-STORE

Рис. 2 Отличие column-store от row-store

Некластеризованный индекс columnstore и кластеризованный

индекс columnstore — это одно и то же.
Разница в том, что некластеризованный индекс вторичен и создается на основе таблицы индексов rowstore, а кластеризованный индекс columnstore является первичным для всей страницы.
Слайд 6

Структура базы данных Рис. 4 Диаграмма базы данных База наполнена тестовыми

Структура базы данных

Рис. 4 Диаграмма базы данных

База наполнена тестовыми данными:
Vendor—

1000 записей
Type — 1000 записей
Market1 — 1000 записей
Market2 — 500 000 записей.
Market3— 3 млн. записей.
Market4 — 18 млн. записей
Слайд 7

Запросы к таблицам Для того чтобы оценить эффективность использования некластеризованных индексов

Запросы к таблицам

Для того чтобы оценить эффективность использования некластеризованных индексов column-store,

мной было составлено несколько запросов различной структуры. Пример одного из них приведен на рис.5.

Рис. 5 Пример запроса

Слайд 8

Запросы к таблицам Рис. 6 Запросы

Запросы к таблицам

Рис. 6 Запросы

Слайд 9

Результаты исследований Рис. 7 Результаты для таблицы с 1000 записями По

Результаты исследований

Рис. 7 Результаты для таблицы с 1000 записями

По оси

ОХ отображается номер запроса, а по OY – время выполнения запроса в мс. Красный столбец показывает время без использования индексов. Розовым – с использованием Column-Store.

Рис. 8 Результаты для таблицы с 500 000 записями

Слайд 10

Рис.9Результаты для таблицы с 3 млн. записями По оси ОХ отображается

Рис.9Результаты для таблицы с 3 млн. записями

По оси ОХ отображается

номер запроса, а по OY – время выполнения запроса в мс. Красный столбец показывает время без использования индексов. Розовым – с использованием Column-Store.

Рис. 10 Результаты для таблицы с 18 млн.записями

Результаты исследований

Слайд 11

По оси ОХ отображается номер запроса, а по OY – время

По оси ОХ отображается номер запроса, а по OY – время

выполнения запроса в мс. Красный столбец показывает время без использования индексов. Розовым – с использованием Column-Store.

Рис. 11 Результаты для таблицы с 18 млн.записями

Рис. 12 Результаты для таблицы с 1000 записями

Слайд 12

Проанализировав полученные результаты можно сделать вывод, что: • Column-Store лучше работают

Проанализировав полученные результаты можно сделать вывод, что:
• Column-Store лучше работают с таблицами,

содержащими большое количество строк;
• Column-Store повышает производительность в 10 раз;
• Column-Store позволяет добиться высокого уровня сжатия данных;
• Не следует использовать Column-Store при малых объемах данных и простых запросах
• Column-Store следует использовать при тяжелых запросах.