Разделы

Цифровизация Бизнес-приложения

MS SQL Server 2012: как решить вопросы производительности?

Вопросы увеличения производительности являются одними из ключевых в работе систем управления базами данных. В новой MS SQL Server 2012 они решаются с помощью нескольких инновационных инструментов.

Индекс ColumnStore

Первым из инструментов повышения производительности в MS SQL Server 2012 является индекс ColumnStore, который основан на новой технологии ядра СУБД, подразумевающей столбцовое хранение данных в памяти. Это делает SQLServer первой крупной системой баз данных общего назначения, использующей настоящее столбцовое хранилище. Индекс ColumnStore объединяет технологию VertiPaq (которая является основанием для PowerPivot), разработанную рабочей группой Analysis Services, и новую парадигму выполнения запросов, называемую пакетной обработкой, обеспечивая значительное повышение скорости обработки типичных запросов к хранилищу данных.В тестовых сценариях удалось добиться 100-кратного повышения эффективности для соединений типа "звезда" и аналогичных запросов.

Схема выборки необходимых данных в таблицах СУБД

Источник: Microsoft, 2012

ColumnStore — это индекс, создаваемый поверх существующей таблицы, основанной на строчном хранении, который обеспечивает представление данных, распределяющее индекс по определенным столбцам. Преобразование данных выполняется на основе таких обязательных столбцов; затем это представление сохраняется, обеспечивая существенное повышение производительности. Конкретный уровень роста производительности зависит от данных и характера запроса, и (по результатам тестирования и при наиболее благоприятном стечении обстоятельств) данная технология позволяет добиться 100-кратного повышения производительности.

Улучшенные функции регулятора ресурсов

Регулятор ресурсов позволяет добиваться согласованной производительности параллельных и смешанных рабочих нагрузок в различных приложениях SQLServer и в частных облаках. Клиенты могут определить долю производительности, выделяемую конкретным рабочим нагрузкам на конкретном ресурсе.

Регулятор ресурсов в SQLServer 2012 обеспечивает дополнительные уровни производительности и масштабируемости, увеличивая максимальное число пулов ресурсов до 64 (по сравнению с 20), предоставляя новый параметр максимальной емкости для загрузки ЦП и допуская привязку пулов ресурсов к планировщикам ресурсов ЦП и узлам NUMA. Эти улучшения наиболее эффективны в сценариях общедоступного облака или консолидации.

Повышение производительности полнотекстового поиска

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

Полнотекстовый поиск применим к широкому кругу бизнес-сценариев, таких как электронная коммерция (поиск элементов на веб-сайте), юриспруденция (поиск исторических данных по делам, содержащимся в хранилище данных) или управление кадрами (сопоставление описаний должностей с хранимыми резюме). Основные же задачи администрирования и разработки полнотекстового поиска аналогичны независимо от бизнес-сценария. Тем не менее в конкретном бизнес-сценарии может потребоваться настройка полнотекстовых индексов и запросов в соответствии с коммерческими целями.

Полнотекстовый поиск в SQLServer 2012 обеспечивает существенный рост производительности и масштабируемости благодаря повышению эффективности выполнения запросов и использованию механизмов параллельного обновления индексов. Теперь разработчики могут воспользоваться преимуществами улучшенного оператора NEAR, который позволяет указать расстояние между словами, а также порядок слов. Помимо этих изменений, в компоненте полнотекстового поиска все средства разбиения текста на слова реорганизованы в соответствии с последними выпусками продуктов Microsoft. Также включена поддержка еще двух языков: чешского и греческого.

Секционирование таблицы (до 15 тыс. сегментов)

В SQLServer 2012 расширена поддержка секционирования: с 1 тыс. до 15 тыс. сегментов. Данный инструмент позволяет реализовывать сценарии больших скользящих окон. Это означает, что приложения, такие как SAP-системы, создающие десятки тысяч моментальных снимков данных за короткий промежуток времени, могут значительно расширить длительность хранения данных перед их отправкой (и началом обработки новых данных), что значительно упрощает управление большими объемами данных. Также инструмент позволяет оптимизировать обслуживание больших наборов данных в пределах файловых групп, для которых требуется подключать и отключать данные в соответствии с потребностями хранилища.

Улучшенные возможности расширенных событий

Расширенные события SQL Server — это общая система обработки событий для серверных систем. Инфраструктура расширенных событий поддерживает корреляцию данных из СУБД и при определенных условиях корреляцию данных из операционной системы и приложений баз данных. Что касается последнего примера, выходные данные расширенных событий необходимо направлять в компонент "Трассировка событий Windows", чтобы выполнить корреляцию сведений с данными событий операционной системы или приложения.

Данный инструмент позволяет существенно оптимизировать устранение неполадок, связанных с функционированием и производительностью, благодаря новым данным профилирования и пользовательскому интерфейсу. Улучшенные возможности включают гибкий выбор событий, ведение журналов и фильтрацию с помощью расширенных событий.

Максим Самойленко / CNews