Есть ли способ проверить, какие запросы выполняются пользователем в таблице SSAS?

Я использую модель BI, основанную на SSAS Tabular, с использованием SQL Server 2016. Несколько членов команды запрашивают ее для своих нужд. Я хочу узнать, какие запросы выполняются и кто выполняет эти запросы.

Не удалось найти DMV очень помогли в моем случае.

Этот запрос показывает только последнюю команду, запущенную пользователем.

Select * from $System.discover_sessions

person Njk    schedule 24.09.2019    source источник
comment
Мы получили что-то похожее, работающее для SSAS Многомерный с использованием расширенных событий. Следующее может указать вам правильное направление: mssqltips.com/sqlservertip/4548/   -  person BarneyL    schedule 24.09.2019
comment
Отдельные запросы не фиксируются по умолчанию, поэтому вам необходимо создать трассировку, используя расширенные события, как предложил @BarneyL, или трассировку Profiler.   -  person Dan Guzman    schedule 24.09.2019
comment
Вы пытались использовать Профилировщик SQL?   -  person Birel    schedule 25.09.2019
comment
@Birel Да, я пробовал. Но я хотел знать лучший способ.   -  person Njk    schedule 27.09.2019


Ответы (2)


Самым простым из них по-прежнему является SQL Server Profiler. Он существовал всегда, почти заменен расширенными событиями, но отлично работает со SSAS, и с его помощью легко отслеживать действия.

person Greg Low    schedule 25.09.2019

Для вопроса «Кто выполняет эти запросы» мы используем «Журналы запросов" в службах SSAS.

Как только вы настроите набор свойств на сервере SSAS, он начнет вести журнал в настроенную таблицу SQL Server.

Чтобы включить журнал запросов, выполните следующие действия.

(1) Создайте реляционную базу данных SQL Server для хранения журнала запросов.

(2) Предоставьте учетной записи службы Analysis Services достаточные разрешения для базы данных. Учетной записи требуется разрешение на создание таблицы, запись в таблицу и чтение из таблицы.

(3) В SQL Server Management Studio щелкните правой кнопкой мыши Analysis Services | Недвижимость | Общие, установите для параметра CreateQueryLogTable значение true.

(4) При необходимости измените QueryLogSampling или QueryLogTableName, если вы хотите выполнять выборку запросов с другой скоростью или использовать другое имя для таблицы.

К сожалению, журналы запросов НЕ регистрируют запросы! Но это помогает определить, кто и когда выполняет запросы.

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

SELECT CAST(starttime AS DATE) 'Date'
        , MSOLAP_User 'User'
        , COUNT(1) 'No. of queries'
FROM [dbo].[OlapQueryLog]
GROUP BY MSOLAP_User
        , CAST(starttime AS DATE)
ORDER BY 1 DESC, 3 DESC

Существует также инструмент AsTrace.

Для постоянного мониторинга и ведения журнала инструмент ASTrace будет захватывать трассировку Profiler и записывать ее в таблицу SQL Server без использования графического интерфейса. ASTrace также работает как служба Windows, что позволяет ему автоматически перезапускаться при перезагрузке сервера.

person Subbu    schedule 27.09.2019
comment
Это относится только к многомерным моделям (т. е. не подходит для табличных)! - person Subbu; 26.01.2021