powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Как оценить время выполнения MDX запроса (MSAS)?
14 сообщений из 14, страница 1 из 1
Как оценить время выполнения MDX запроса (MSAS)?
    #33638808
Ihor Bobak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSAS 2000/2005, MDX запрос. Нужно определить хотя бы приблизительно СКОЛЬКО ВРЕМЕНИ он будет выполнятся.

На форуме "Microsoft SQL Server" этот вопрос подымался относительно SQL-запросов, и на нем ответ - никак. То есть не совсем: если это хранимая процедура - можно извращаться с записью статуса в отдельную таблицу, а оттуда считывать данные, и пр. Но это SQL, а нужно для MDX.

Несколько слов зачем. Делаем свой ОЛАП-клиент, и на каждом этапе хотим знать что делается в данный момент, и сколько осталось ждать. Этапы следующие:
1) юзер поменял конфигурацию отчета
2) на сервер пошел сгенерированный MDX
3) MDX выполняется
4) получили результаты выполнения MDX, качаем их на клиента
5) отображаем результаты

Проблемным есть этап 3 - неизвестно сколько юзер должен ждать пока MDX запрос выполнится. Пока-что мы просто отображаем диалоговое окно "Executing the request. N seconds passed...", N=1,2,3... и у юзеря через 10 секунд возникает вопрос "сколько еще ждать?". Вот бы в этом окне отобразить "осталось N секунд", но как это узнать?
...
Рейтинг: 0 / 0
Как оценить время выполнения MDX запроса (MSAS)?
    #33638856
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению для MDX ответ такой же - никак.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Как оценить время выполнения MDX запроса (MSAS)?
    #33639374
Andriy7777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На каждом OLAP сервере вы можете установить программу, которая бы мониторила trace (можно в указать, что вас интересует только CommandBegin и CommandEnd events чтобы нагрузка от trace была минимальной) и оценивала сколько какой запрос выполняется. Результаты пусть записываются в какую-нибудь базу данных, которая периодически бы вычисляла среднее значение и отклонение (базовые статистики).

Клиенты могут контактировать к той "статистической" базе данных и получать информацию о сервере с которым они работают. Информацию нужно передавать группой (вся статистика о сервере) чтобы потом не контактировать каждый раз при выполнении MDX, а доставать из памяти клиента.

Зная статистику, можно разумно информировать пользователя. Должно работать для SQL запросов тоже.
...
Рейтинг: 0 / 0
Как оценить время выполнения MDX запроса (MSAS)?
    #33639401
Andriy7777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Продолжение мысли...

Для мониторящей программы может возникнуть сложность в классификации запросов. Например, структура MDX (или SQL) запроса может быть одна, но в запрос могут быть переданы различные имена (unique names). Текст запроса разный, но тип и структура одна и та же.

Писать parser для MDX или SQL нет охоты. Можно получить помощь от клиента. Клиент составляет текст запросов. Он может также вставлять структурированные коментарии о типе запроса, какие-нибудь еще переменные вписанные в MDX и известные разработчику как влияющие на скорость.

Затем можно написать parser для комментариев извлекающий тип запроса и дополнительные переменные. Если переменные есть (кроме типа запроса), информацию можно использовать для построения minig model (logistic regression or neural networks, у вас ведь output attribute - ожидаемое время - является continuous, а не destrete (or categorical); хотя можно и другую, ведь data mining алгоритмы умеют превращать continuous в categorical) и запрашивать mining model для анализа. Но это уже более сложная система и надо экспериментировать - даст ли она результаты.
...
Рейтинг: 0 / 0
Как оценить время выполнения MDX запроса (MSAS)?
    #33639426
Фотография Гликоген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руку на отсечение не дам, но по-моему, многие прогресс-бары написаны по гораздо более простым алгоритмам :)

Типа берем раз в секунду рисуем полосочку. А когда запрос исполнился и что-то вернул - рррраз - и добегаем до конца!
...
Рейтинг: 0 / 0
Как оценить время выполнения MDX запроса (MSAS)?
    #33639435
Andriy7777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если цель - нарисовать полосочку, то да, можно и так. Автор ставил цель уведомления пользователя о том, когда можно ожидать окончание выполнения MDX (в более сложном случае, окончание составления отчета или выполнения задачи). Если это ему так важно (его пользователям так важно) и готовы тратить время (=деньги) на решение именно этой проблемы, то можно рассматривать различные варианты (решения проблемы, а не рисование полосочек).
...
Рейтинг: 0 / 0
Как оценить время выполнения MDX запроса (MSAS)?
    #33639822
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andriy7777Если это ему так важно (его пользователям так важно) и готовы тратить время (=деньги) на решение именно этой проблемы,

Хотел бы я видеть заказчика, который на разработку этого готов выложить свои кровные. Сумлеваюся я шибко в сущетвовании таких.
...
Рейтинг: 0 / 0
Как оценить время выполнения MDX запроса (MSAS)?
    #33641268
ban_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfireХотел бы я видеть заказчика, который на разработку этого готов выложить свои кровные. Сумлеваюся я шибко в сущетвовании таких.
Вы не поверите, но мои заказчики хотят оценивать время выполнения запросов. И даже платят за это.

Я эту тему поднимал здесь и здесь

Получается нелинейная зависимость. Основная проблема состоит в том, что процедура принимает разные пользовательские параметры, которые влияют на время выполнения. Кроме того, есть четкая зависимость с железом, индексами и обновлением статистики.
Идея посадить долгоиграющие запросы в отдельный black box trace для последующего разбора полетов не нова.

Как это не печально, но до сих пор, ни в TSQL, ни в MDX нет нормального estimation engine.
...
Рейтинг: 0 / 0
Как оценить время выполнения MDX запроса (MSAS)?
    #33641301
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну чтовы MS обладает отличным engine.
Берете ресуете палочки раз в секунду, если не успел уложиться, то просто висите на "сделано 98%"
У MS масса таких прогресс баров и ничего.
Может просто не раздувать проблему и предложить заказчику что-то более полезное типа уведомления о конце запроса звуком?
...
Рейтинг: 0 / 0
Как оценить время выполнения MDX запроса (MSAS)?
    #33641375
Беляев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ban_ backfireХотел бы я видеть заказчика, который на разработку этого готов выложить свои кровные. Сумлеваюся я шибко в сущетвовании таких.
Вы не поверите, но мои заказчики хотят оценивать время выполнения запросов. И даже платят за это.

Я эту тему поднимал здесь и здесь

Получается нелинейная зависимость. Основная проблема состоит в том, что процедура принимает разные пользовательские параметры, которые влияют на время выполнения. Кроме того, есть четкая зависимость с железом, индексами и обновлением статистики.
Идея посадить долгоиграющие запросы в отдельный black box trace для последующего разбора полетов не нова.

Как это не печально, но до сих пор, ни в TSQL, ни в MDX нет нормального estimation engine.
Если заказчик платит, что ж... всем бы таких заказчиков.
Время выполнения запроса - это ведь величина случайная. Ни один сервер не гарантирует Вам выполнение запроса в рассчитанный каким-то образом промежуток времени на 100%. Так что не в MS дело и не в OLAP.
Но мой совет Вам - не играйтесь с заказчиками в такие игры, в конечном итоге стоимость реализации того или иного функционала должна всегда быть в разы ниже эффекта от его использования. Скорее всего заказчик просто не представляет сколько это стоит, а Вы рискуете разочаровать и его и себя.

Владислав Беляев
...
Рейтинг: 0 / 0
Как оценить время выполнения MDX запроса (MSAS)?
    #33641447
Ihor Bobak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут упоминалось о том, чтобы собирать статистику запросов и в дальнейшем проводить их анализ. Идея конечно супер, но не учтена одна деталь: кубы каждый день наполняются новыми данными. И если какой-либо запрос работал 10 секунд вчера, то тот же запрос не обязательно будет работать столько же времени послезавтра.
...
Рейтинг: 0 / 0
Как оценить время выполнения MDX запроса (MSAS)?
    #33642398
Беляев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня возникла шальная идея - ваш заказчик Майкрософт :))

Владислав Беляев
...
Рейтинг: 0 / 0
Как оценить время выполнения MDX запроса (MSAS)?
    #33642547
ban_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БеляевУ меня возникла шальная идея - ваш заказчик Майкрософт :))
Владислав Беляев
:) Не угадали. Судя по времени поста эта идея не давала Вам спать.
Просто моя задача имеет частное решение, а уважаемые спорщики склонны обобщать и унифицировать. И все же я согласен, что более правельный способ не предсказывать время выполения, а уведомлять пользователя любым удобным способом о том, что запрос выполнен. Здесь асинхронные обработчики рулят.
...
Рейтинг: 0 / 0
Как оценить время выполнения MDX запроса (MSAS)?
    #33658106
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ihor BobakТут упоминалось о том, чтобы собирать статистику запросов и в дальнейшем проводить их анализ. Идея конечно супер, но не учтена одна деталь: кубы каждый день наполняются новыми данными. И если какой-либо запрос работал 10 секунд вчера, то тот же запрос не обязательно будет работать столько же времени послезавтра.

А еще N пользователей, работающих одновременно, процесс совершенно не детерминированный.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Как оценить время выполнения MDX запроса (MSAS)?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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