在SQL Server數據庫管理中,針對分析服務Analysis Services 的性能優化必不可少,這裡我們將學習到使用DMV來進行Analysis Services 的優化。使用動態管理視圖 (DMV) 監視 Analysis Services 的連接和資源統計信息。 Analysis Services 統計信息的功能可幫助您解決與 Analysis Services 相關的問題並優化 Analysis Services 性能。
注意:您可以從 C:\SQLHOLS\Managing Analysis Services\Starter\Exercise3.txt 復制此練習中使用的腳本。每份腳本前面都帶有注釋,以標識和代碼相關的過程和步驟
1. 在 SQL Server Management Studio中的文件菜單中,指向新建,然後單擊Analysis Services MDX 查詢(也可以在工具欄中單擊新建查詢)。
2. 如果顯示連接到 Analysis Services 對話框,請單擊連接。
3. 在工具欄中的可用數據庫列表中,確保選中 Adventure Works OLAP 數據庫。
4. 鍵入下列命令並執行,然後滾動浏覽結果,查看所有包含以 DISCOVER_ 開頭的 TABLE_NAME 值的行。此查詢為您提供可用的 DMV。
- SELECT * FROM $SYSTEM.DBSCHEMA_TABLES
- ORDER BY TABLE_NAME
注意:利用這些 DMV,從服務器檢索性能統計信息的方式可以非常靈活。您可以編寫自定義應用程序或使用 SQL Server Reporting Services 生成報告,收集並查看解決 Analysis Services 環境問題和優化該環境所需的信息。
5. 在查詢頁中,使用以下命令替換現有查詢,然後單擊執行。
- SELECT * FROM $SYSTEM.DISCOVER_CONNECTIONS
6. 查看查詢結果。調整左起第五列(CONNECTION_HOST_APPLICATION)的列寬,以查看每個連接的完整應用程序名稱。請注意 SQL Server Management Studio 查詢和 SQL Server Management Studio 的結果是有區分的。
注意:CONNECTION_LAST_COMMAND_START_TIME、CONNECTION_LAST_COMMAND_END_TIME 和 CONNECTION_LAST_COMMAND_ELAPSED_TIME_MS 等值可幫助您找出運行時間長或有問題的查詢。
7. 關閉上一練習結束時保留為打開狀態的 Adventure Works Cube[浏覽]窗口。
8. 在 MDXQuery1 選項卡中,重新執行步驟 5 的查詢 (SELECT * FROM $SYSTEM.DISCOVER_CONNECTIONS),並注意 SQL Server Management Studio 連接不再呈示。記下當前 CONNECTION_ID 值。
9. 最小化 SQL Server Management Studio。
10. 單擊開始|所有程序| Microsoft Office,然後單擊 Microsoft Office Excel 2007。
11. 在 Excel 功能區中,單擊數據選項卡。
12. 在數據選項卡中,在獲取外部數據部分,單擊自其他來源,然後單擊來自分析服務。
13. 在連接數據庫服務器頁中,在服務器名稱框中鍵入 (local),然後單擊下一步。
14. 在選擇數據庫和表中,在選擇數據庫框中,選擇 Adventure Works OLAP 數據庫,單擊 Adventure Works Cube,然後單擊下一步。
15. 在保存數據連接文件並完成頁中,單擊完成。
16. 在導入數據頁中,查看默認設置,然後單擊確定。
17. 在數據透視表字段列表中,在 Internet Sales下,展開Sales,然後選中 Internet Sales-Sales Amount復選框。
18. 在數據透視表字段列表中,在Product下,選中Product CategorIEs復選框。
19. 最小化 Microsoft Office Excel®,然後最大化 SQL Server Management Studio。
20. 在 MDXQuery1 選項卡中,重新執行步驟 5 的查詢 (SELECT * FROM $SYSTEM.DISCOVER_CONNECTIONS),然後記錄 Excel 創建的新連接的 CONNECTION_ID。
21. 在現有查詢下,鍵入以下查詢。
- SELECT
- session_connection_id
- , session_spid
- , session_user_name
- , session_last_command
- , session_start_time
- , session_cpu_time_ms
- , session_reads
- , session_writes
- , session_status
- , session_current_database
- , session_used_memory
- , session_start_time
- , session_elapsed_time_ms
- , session_last_command_start_time
- , session_last_command_end_time
- FROM $SYSTEM.DISCOVER_SESSIONS
22. 選擇剛剛輸入的查詢,然後單擊執行。
23. 查看 session_connection_id 與步驟 20 中記錄的數字匹配的行的輸出。請注意這些結果中包含用戶名、上一命令和每個連接的 CPU 時間等有用診斷信息。
注意:session_status 為 1 表示在報告運行時具有活動查詢的會話。
24. 鍵入以下命令並執行,以查看數據庫中每個對象的內存使用量。
- SELECT * FROM $SYSTEM.DISCOVER_OBJECT_MEMORY_USAGE
25. 鍵入以下命令並執行,以查看數據庫中每個對象的活動。
- SELECT * FROM $SYSTEM.DISCOVER_OBJECT_ACTIVITY
26. 關閉 SQL Server Management Studio 和 Microsoft Office Excel 2007。請勿保存任何文件。
27. 關閉 Hyper-V 窗口