共用方式為


Analysis Services 中的記錄作業

適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Analysis Services 實例會將伺服器通知、錯誤和警告記錄到msmdsrv.log檔案,每一個實例都會為您安裝。 系統管理員會參考此記錄,以深入瞭解例行和異常事件。 在最新版本中,記錄已增強,以包含詳細資訊。 記錄檔記錄現在包含產品版本和版本資訊,以及處理器、記憶體、連線和封鎖事件。 您可以在 記錄改善檢閱整個變更清單。

除了內建記錄功能,許多系統管理員和開發人員也會使用 Analysis Services 社群所提供的工具來收集伺服器作業的相關數據,例如 ASTrace

本主題包含下列各節:

記錄的位置和類型

Analysis Services 提供以下所述的記錄。

檔名或位置 類型 用於 默認為開啟
Msmdsrv.log 錯誤記錄檔 例行監視和基本疑難解答 是的
關係資料庫中的OlapQueryLog數據表 查詢記錄檔 收集使用優化精靈的輸入
SQLDmp<guid>.mdmp 檔案 當機和例外狀況 深入疑難解答

強烈建議下列連結,以取得本主題未涵蓋的其他資訊資源:Microsoft 支援的初始數據收集秘訣。

記錄檔組態設定的一般資訊

您可以在位於 \Program Files\Microsoft SQL Server\MSAS13 的 msmdsrv.ini 伺服器組態檔中找到每個記錄的區段。MSSQLSERVER\OLAP\Config 資料夾。 如需編輯檔案的指示,請參閱 Analysis Services 中的 伺服器屬性。

可能的話,我們建議您在Management Studio 的伺服器屬性頁面中設定記錄屬性。 雖然在某些情況下,您必須直接編輯 msmdsrv.ini 檔案,以設定系統管理工具中看不到的設定。

組態檔的區段,其中顯示記錄設定

MSMDSRV 服務記錄檔

Analysis Services 會將伺服器作業記錄到msmdsrv.log檔案,每個實例一個,位於 \program files\Microsoft SQL Server\<實例>\Olap\Log。

每個服務重新啟動時都會清空此記錄檔。 在舊版中,系統管理員有時會為了排清記錄檔而重新啟動服務,然後才會成長為無法使用。 這已不再需要。 SQL Server 2012 SP2 和更新版本中引進的組態設定可讓您控制記錄檔的大小及其歷程記錄:

  • MaxFileSizeMB 指定以 MB 為單位的記錄檔大小上限。 預設值為 256。 有效的取代值必須是正整數。 到達 maxFileSizeMB 時,Analysis Services 會將目前的檔案重新命名為 msmdsrv{current timestamp}.log 檔案,然後啟動新的msmdsrv.log檔案。

  • MaxNumberFiles 指定舊記錄檔的保留期。 預設值為 0(已停用)。 您可以將它變更為正整數,以保留記錄檔的版本。 到達 maxNumberFiles 時,Analysis Services 會刪除名稱中具有最舊時間戳的檔案。

若要使用這些設定,請執行下列動作:

  1. 在記事本中開啟 msmdsrv.ini。

  2. 複製下列兩行:

    <MaxFileSizeMB>256</MaxFileSizeMB>  
    <MaxNumberOfLogFiles>5</MaxNumberOfLogFiles>  
    
  3. 將這兩行貼到 msmdsrv.ini的 [記錄] 區段中,msmdsrv.log的檔名下方。 這兩個設定都必須手動新增。 msmdsrv.ini 檔案中沒有任何佔位符。

    已變更的組態檔看起來應該如下所示:

    <Log>  
    <File>msmdsrv.log</File>  
    <MaxFileSizeMB>256</MaxFileSizeMB>  
    <MaxNumberOfLogFiles>5</MaxNumberOfLogFiles>  
    <FileBufferSize>0</FileBufferSize>  
    
    
  4. 如果所提供的值與您想要的值不同,請編輯這些值。

  5. 儲存盤案。

  6. 重新啟動服務。

查詢記錄

查詢記錄只能針對 Analysis Services 多維度模式實例啟用。 表格式模式實例無法啟用查詢記錄。

查詢記錄檔有點錯誤,因為它不會記錄使用者的 MDX 或 DAX 查詢活動。 相反地,它會收集 Analysis Services 所產生的查詢相關數據,該查詢隨後會在使用方式優化精靈中當做數據輸入使用。 查詢記錄中收集的數據不適合直接分析。 具體來說,數據集會在位數組中描述,其中零或一個表示數據集部分包含在查詢中。 同樣地,此數據適用於精靈。

針對查詢監視和疑難解答,許多開發人員和系統管理員會使用社群工具,ASTrace來監視查詢。 您也可以使用 SQL Server Profiler、xEvents 或 Analysis Services 追蹤。

何時應該使用查詢記錄檔? 建議您啟用查詢記錄作為查詢效能微調練習的一部分,其中包含使用方式優化精靈。 在您啟用功能、建立數據結構以支援它,以及設定 Analysis Services 用來尋找和填入記錄的屬性之前,查詢記錄不存在。

若要啟用查詢記錄,請遵循下列步驟:

  1. 建立 SQL Server 關係資料庫來儲存查詢記錄。

  2. 授與 Analysis Services 服務帳戶對資料庫足夠的許可權。 帳戶需要建立數據表、寫入數據表,以及從數據表讀取的許可權。

  3. 在 SQL Server Management Studio 中,以滑鼠右鍵按兩下 Analysis Services | [屬性] | [一般],將 CreateQueryLogTable 設為 true。

  4. 或者,如果您想要以不同的速率取樣查詢,或針對數據表使用不同的名稱,請變更 QueryLogSamplingQueryLogTableName

在您執行足夠的 MDX 查詢以符合取樣需求之前,將不會建立查詢記錄數據表。 例如,如果您保留預設值 10,則必須先執行至少 10 個查詢,才能建立數據表。

查詢記錄檔設定是全伺服器。 您指定的設定將由此伺服器上執行的所有資料庫使用。

Management Studio 中的查詢記錄設定,

指定組態設定之後,多次執行 MDX 查詢。 如果取樣設定為 10,請執行查詢 11 次。確認數據表已建立。 在 Management Studio 中,連線到關係資料庫引擎、開啟資料庫資料夾、開啟 Tables 資料夾,並確認 OlapQueryLog 存在 。 如果您沒有立即看到數據表,請重新整理資料夾以挑選其內容的任何變更。

允許查詢記錄為使用方式優化精靈累積足夠的數據。 如果查詢磁碟區是週期性的,請擷取足夠的流量,以擁有一組代表性的數據。 如需如何執行精靈的指示,請參閱 使用方式優化精靈

請參閱 設定 Analysis Services 查詢記錄檔 以深入瞭解查詢記錄設定。 雖然文件相當舊,但查詢記錄設定在最新版本中並未變更,而且它所包含的資訊仍適用。

迷你傾印 (.mdmp) 檔案

傾印檔案擷取用於分析異常事件的數據。 Analysis Services 會自動產生迷你傾印 (.mdmp),以回應伺服器當機、例外狀況和某些設定錯誤。 此功能已啟用,但不會自動傳送當機報告。

當機報告是透過 Msmdsrv.ini 檔案中的例外狀況區段來設定。 這些設定可控制記憶體傾印檔案的產生。 下列代碼段顯示預設值:

<Exception>  
<CreateAndSendCrashReports>1</CreateAndSendCrashReports>  
<CrashReportsFolder/>  
<SQLDumperFlagsOn>0x0</SQLDumperFlagsOn>  
<SQLDumperFlagsOff>0x0</SQLDumperFlagsOff>  
<MiniDumpFlagsOn>0x0</MiniDumpFlagsOn>  
<MiniDumpFlagsOff>0x0</MiniDumpFlagsOff>  
<MinidumpErrorList>0xC1000000, 0xC1000001, 0xC102003F, 0xC1360054, 0xC1360055</MinidumpErrorList>  
<ExceptionHandlingMode>0</ExceptionHandlingMode>  
<CriticalErrorHandling>1</CriticalErrorHandling>  
<MaxExceptions>500</MaxExceptions>  
<MaxDuplicateDumps>1</MaxDuplicateDumps>  
</Exception>  

設定當機報告

除非由Microsoft支援指示否則,大部分的系統管理員都會使用預設設定。 此較舊的 KB 文章仍可用來提供如何設定傾印檔案的指示:如何設定 Analysis Services 以產生記憶體轉儲檔案

最有可能修改的組態設定是用來判斷是否要產生記憶體轉儲檔案的 CreateAndSendCrashReports 設定。

價值 描述
0 關閉記憶體轉儲檔案。 系統會忽略 [例外狀況] 區段下所有其他設定。
1 (預設值)啟用記憶體轉儲檔案,但不傳送記憶體轉儲檔案。
2 啟用並自動將錯誤報告傳送至Microsoft。

CrashReportsFolder 是傾印檔案的位置。 根據預設,您可以在 \Olap\Log 資料夾中找到 .mdmp 檔案和相關聯的記錄檔記錄。

SQLDumperFlagsOn 可用來產生完整傾印。 預設不會啟用完整傾印。 您可以將此屬性設定為 0x34

下列連結提供更多背景:

秘訣和最佳做法

本節是本文中提及的秘訣的回顧。

  • 設定msmdsrv.log檔案來控制 msmdsrv 記錄檔的大小和數目。 默認不會啟用這些設定,因此請務必將它們新增為安裝後步驟。 請參閱本主題中的 MSMDSRV 服務記錄檔

  • 使用 ASTrace,而不是查詢記錄檔,找出誰正在查詢 Cube。 查詢記錄通常用來提供使用方式優化精靈的輸入,而且擷取的數據不容易讀取或解譯。 ASTrace 是一種社群工具,廣泛使用,可擷取查詢作業。

另請參閱

Analysis Services 實例管理

Analysis Services 中的伺服器屬性