共用方式為


Analysis Services 中的記錄作業

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

除了內建記錄功能,許多系統管理員和開發人員也會使用 Analysis Services 社群所提供的工具來收集伺服器作業的相關數據,例如 ASTrace。 如需下載連結 ,請參閱Microsoft SQL Server 社群範例:Analysis Services

本主題包含下列幾節:

備註

如果您要尋找有關記錄的資訊,您可能也會對那些顯示處理流程及查詢執行路徑的追蹤操作感興趣。 臨時和持續追蹤的追蹤物件(例如稽核 Cube 存取),以及如何最佳使用 Flight Recorder、SQL Server Profiler 和 xEvents 的建議,可透過此頁面上的連結找到:監視 Analysis Services 實例

記錄的位置和類型

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

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

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

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

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

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

顯示記録設定的組態檔區段

MSMDSRV 服務記錄檔

Analysis Services 會將伺服器作業記錄至msmdsrv.log檔案,每個實例一個,位於 \program files\Microsoft SQL Server\<instance>\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. 重新啟動服務。

查詢記錄

查詢記錄檔有點錯誤,因為它不會記錄使用者的 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 服務記錄檔

  • 請檢閱Microsoft客戶支援的這篇部落格文章,以了解他們用來取得伺服器作業相關信息的資源: 初始數據收集

  • 使用 ASTrace2012 而非查詢日誌檔,以確定誰正在查詢多維數據集。 查詢記錄通常用來提供使用方式優化精靈的輸入,而且擷取的數據不容易讀取或解譯。 ASTrace2012 是一種社群工具,廣泛使用,可擷取查詢作業。 請參閱 Microsoft SQL Server 社群範例:Analysis Services

另請參閱

Analysis Services 實例管理
使用 SQL Server Profiler 監視 Analysis Services 簡介
在 Analysis Services 中設定伺服器屬性