簡體   English   中英

有沒有辦法在 SSAS 表格中檢查用戶運行了哪些查詢?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM