[英]Is there a way to check Which Queries are run by a User in SSAS Tabular?
我正在使用基於 SSAS 表格的 BI Model,使用 SQL 服務器 2016。多個團隊成員正在查詢它以滿足他們的需求。 我想知道正在運行哪些查詢以及誰在運行這些查詢。
在我的情況下,找不到DMV很有幫助。
此查詢僅顯示用戶運行的最后一條命令。
Select * from $System.discover_sessions
最簡單的仍然是 SQL Server Profiler。 它一直存在,幾乎被擴展事件所取代,但與 SSAS 一起工作得很好,並且很容易用它來跟蹤活動。
對於“誰在運行這些查詢”的問題,我們使用 SSAS 的“ 查詢日志”功能。
在 SSAS 服務器中設置一堆屬性后,它將開始記錄到配置的 SQL 服務器表。
要啟用查詢日志,請執行以下步驟:
(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 服務器表,而無需 GUI。 ASTrace 還作為 Windows 服務運行,允許它在服務器重新啟動時自動重新啟動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.