Косяков Иван Microsoft MVP Russian BI User Group, PASS Chapter.

Презентация:



Advertisements
Похожие презентации
Microsoft TechDays Косяков Иван Microsoft MVP Russian BI User Group, PASS Chapter.
Advertisements

Microsoft TechDays Павел Маслов MVP, Directory Services.
Microsoft TechDays Марат Бакиров Эксперт по разработке ПО Microsoft
Microsoft TechDays Никоноров Евгений разработчик EPAM Systems.
Microsoft TechDays Константин Трещев MCITP: Enterprise Administrator
Microsoft TechDays Людмила Шайкина Quarta Consulting
Microsoft TechDays Дмитрий Рудых.
Ромуальд Здебский Microsoft.
Электронная Библиотека Президента Полнотекстовый поиск на базе iFTS SQL Server Июнь 2009| MSC.
Microsoft TechDayshttp:// Коршиков Андрей Фёдорович ведущий инженер-программист ЗАО «НИПИ «ИнжГео» MCT, MCITP, MCPD.
Microsoft TechDays Павел Дугаев Руководитель проектов Вебзавод
Microsoft TechDays Ксения Хмелёва Специалист по технологиям Microsoft.
Новые продукты Microsoft для повышения качества и эффективности образования Амит Миталь Старший вице-президент Microsoft по развитию социальных проектов.
Microsoft TechDays Евгений Марченков Эксперт по технологиям разработки ПО Microsoft.
Microsoft TechDays Леонид Шапиро MCT ЦКО «Специалист»
Microsoft TechDays Николай Миляев консультант Microsoft.
Microsoft TechDays Виталий Дильмухаметов
Будущее режима /hosting в Exchange Иван Макаров Менеджер по маркетингу Exchange Microsoft Россия.
Microsoft TechDays Богомолов Алексей MCP
Microsoft TechDays Тучков Вячеслав
Транксрипт:

Косяков Иван Microsoft MVP Russian BI User Group, PASS Chapter

Архитектура запросов Диагностика проблемы Оптимизация измерений Настройка агрегирования Использование секций Оптимизация MDX-запросов «Разогревание» кэша Многопользовательский режим

MDX- запросы MDX- запросы Обработка индексов и агрегатов Обработка данных Обработка измерений

Архитектура запросов Диагностика проблемы Оптимизация измерений Настройка агрегирования Использование секций Оптимизация MDX-запросов «Разогревание» кэша Многопользовательский режим

Выполнение запросов Извлечение данных XML/A приемник Менеджер сессий Обработчик запросов Кэш обработчика запросов Движок хранения Кэш движка хранения MDX-запрос клиентского приложения Управление сессиями

ЗапросЗапрос Свойство CoordinatorExecutionMode: 0 – автоматически, на основе нагрузки и ресурсов +N – число параллельных работ на сервер -N – число параллельных работ на процессор Координирующая работа Работа 1 ПотокПоток Работа 2 ПотокПоток Работа N ПотокПоток …… ПотокПоток

Контекст запроса Контекст сессии Глобальный контекст Кэш движка формул Движок расчетов Операции со вложенными кубами Подсчет данных в ячейках Заполнение координат Анализатор запросов Движок формул Менеджер сессий Движок хранения

Запрос к вложенному кубу Движок хранения Кэш движка хранения Данные измерений Хранилище атрибутов Хранилище иерархий Данные групп мер Фактические данные АгрегатыАгрегаты Обработчик запросов Менеджер сессий

Запрос к вложенному кубу Координирующая работа Работа 1-го сегмента Поток Работа 2-го сегмента Поток Работа N-го сегмента Поток … …

Архитектура запросов Диагностика проблемы Оптимизация измерений Настройка агрегирования Использование секций Оптимизация MDX-запросов «Разогревание» кэша Многопользовательский режим

Фиксируем «точку отсчета» «Холодный» кэш движков «Теплый» кэш системы Производим диагностику проблемы

Обработчик запросов Оптимизация MDX-запросов «Разогревание» кэша Движок хранения Оптимизация измерений Оптимизация агрегирования Оптимизация секций Аппаратные ресурсы Добавить память Добавить процессоры Улучшить I/O или много- пользовательский режим

Архитектура запросов Диагностика проблемы Оптимизация измерений Настройка агрегирования Использование секций Оптимизация MDX-запросов «Разогревание» кэша Многопользовательский режим

Если заданы атрибутивные отношения: Используются индексы Эффективно рассчитываются агрегаты Select Category.Members * Subcategory.Members on 0 from [Adventure Works]

Натуральные и ненатуральные иерархии

Архитектура запросов Диагностика проблемы Оптимизация измерений Настройка агрегирования Использование секций Оптимизация MDX-запросов «Разогревание» кэша Многопользовательский режим

Проблема: трассировка показала, что более 60% времени запрашиваются секции Как обнаружить: отслеживать события Get Data From Aggregation и Query Subcube Verbose Решение проблемы: Оптимизировать агрегаты, использовать Usage Based optimization wizard для расчета агрегатов Совместить с существующими агрегатами или заменить их

Возможность пересмотра и модификации настроек использования агрегатов Имена настроек агрегирования

Full – атрибут будет включен во все агрегации Unrestricted – атрибут может быть включен в агрегации None – ни одна агрегация не может содержать атрибут Default Атрибут «Все» и атрибут уровня ключа измерения = Unrestricted Измерения «M2M», не материализованные измерения и измерения «data mining» = None Натуральные иерархии = Unrestricted Статистически не обрабатываемые атрибуты = Full Все остальные = None

DefaultDefault FullFull UnrestrictedUnrestricted NoneNone Атрибут часто используется, Не более 10 атрибутов Unrestricted Атрибут почти всегда используется, Мало элементов Атрибут редко используется, участвует в натуральных иерархиях

Просмотр структур агрегирования и агрегатов Ручное добавление, изменение и удаление агрегатов Применение структуры агрегирования для другой секции

Создание новой структуры агрегирования Объединение с существующей структурой агрегирования

Архитектура запросов Диагностика проблемы Оптимизация измерений Настройка агрегирования Использование секций Оптимизация MDX-запросов «Разогревание» кэша Многопользовательский режим

Срезы – секции без данных не запрашиваются Индивидуальный набор агрегатов для каждой секции – в зависимости от запросов

Секции упорядочены по колонке «distinct count» Когда запрашивается результирующее «число различных объектов», потоки, сканирующие секции, скоординированы по значению «число различных объектов» Поэтому потоки на одной секции могут ждать, чтобы их догнали другие, если «различные» значения перекрываются Перекрывающиеся секции Не перекрывающиеся секции

Архитектура запросов Диагностика проблемы Оптимизация измерений Настройка агрегирования Использование секций Оптимизация MDX-запросов «Разогревание» кэша Многопользовательский режим

Анализируйте выражение, если требуется «вычистить» пустое пространство

Measures.[Sales Amount] (Measures.[Sales Amount], Product.[Product Categories].Parent) / = Measures.[Product Contribution]

Известные факты A = Product.CurrentMember B = Product.Parent Только когда A is not NULL, тогда A / B is not NULL B – всегда константа Движок хранения запрашивает только непустые данные Заключение Выполнять вычисления только тогда, когда значения числителя возвращаются движком хранения, а знаменатель – постоянная величина

Measures.[Sales Amount] Measures.[Product Contribution] (Measures.[Sales Amount], Product.[Product Categories].Parent) Шаг 1: Получить определенные (not NULL) значения Шаг 2: Вычислить выражение Шаг 3: Добавить значения NULL в результаты запроса

Блочные вычисления не поддерживаются в сценариях: Именованные наборы Aggregate([NamedSet]) Динамические выражения [Date].[Fiscal].Lag([Measures].[Count]) Операции с динамическими наборами Filter, NonEmpty, EXISTING, etc. Рекурсии – обнаружение возможной рекурсии может возвратить расчет в каждой ячейке Документация MSDN ® по блочным вычислениям

Оптимизируйте использование IIF Создавайте отдельный вычисляемый элемент для повторного использования Исключайте переменные атрибуты Используйте NULL для пустых ячеек В выражении «expr1 * expr2» разряженное выражение – в левую часть Можно перенести часть вычислений в реляционный движок

Архитектура запросов Диагностика проблемы Оптимизация измерений Настройка агрегирования Использование секций Оптимизация MDX-запросов «Разогревание» кэша Многопользовательский режим

Кэш пустой когда запускается сервер или обрабатывается секция «Разогревание» кэша предварительно загружает типичные запросы Создайте приложение VB.NET или C#.NET Используйте ascmd.exe Добавьте задание со скриптом в пакет Integration Services Запустите отчеты Reporting Services

Архитектура запросов Диагностика проблемы Оптимизация измерений Настройка агрегирования Использование секций Оптимизация MDX-запросов «Разогревание» кэша Многопользовательский режим

Установите настройки Threadpool\Query\MaxThreads – максимальное количество рабочих потоков в пуле запросов Threadpool\Process\MaxThreads – максимальное количество потоков в пуле обработки CoordinatorExecutionMode – количество работ на процессор Отслеживайте узкие места количество конкурентных работ и потоков Подробнее ice/ssasqptb.mspx ice/ssasqptb.mspx

Попробуйте использовать NTLFH heap manager вместо OLAP heap manager

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

Используйте кластер серверов SSAS (server farm) Network Load Balancing (NLB) – функция Windows Server® База может быть промаркирована как read-only – если многопользовательская нагрузка мала на движок хранения, но велика на обработчик запросов

Статьи SQL Server 2008 Analysis Services Performance Guide 88D-E7AA-4078-A050-AE39912D2E43&displaylang=en) 88D-E7AA-4078-A050-AE39912D2E43&displaylang=en Analysis Services Distinct Count ( 6ebf-9d1c-405f-84b1-08f492af52dd&displaylang=en) 6ebf-9d1c-405f-84b1-08f492af52dd&displaylang=en Performance Improvements for MDX in SSAS us/library/bb934106(SQL.100).aspx us/library/bb934106(SQL.100).aspx Презентации PASS Community Summit

SQL Customer Advisory Team SQL Server Web site SQL Server TechCenter SQL Server DevCenter

Мой блог - Для вопросов: Russian Business Intelligence ( – группа пользователей, отделение PASShttp://rubi.ineta.ru

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.