【譯】Database Profiling with Visual Studio
你是否在排查運行緩慢的 web 應用程式時懷疑是資料庫層造成的?以前排查資料庫層需要特定的工具,現在可以使用 Visual Studio 的 Performance Explorer 中的資料庫分析工具快速而輕鬆地排查。
當談到診斷 web 應用程式的性能時,我們在與開發人員的數十次交談中了解到,應用程式的資料庫層通常是導致應用程式運行緩慢的主要原因。然而,大多數解決方案都需要安裝單獨的工具、收集大量的SQL跟蹤或修改應用程式程式碼來獲得所需的資訊。
為了使這個過程不那麼繁瑣和複雜,我們在 Visual Studio 的 Performance Profiler 中開發了 Database tool,以幫助你深入了解應用程式的資料庫層。你可以確切地看到在應用程式執行期間發生了哪些資料庫活動的有用資訊,比如哪些查詢和事務運行的時間最長,每個查詢使用的連接字元串,以及可能最重要的是,這些查詢在程式碼中的何處生成。
下面看一個簡單示例,了解如何使用該工具定位程式碼與資料庫交互的位置,並對其進行性能改進。
使用工具
以微軟的 eShopOnWeb 為例,本地部署後運行站點,並花點時間加一些商品到購物車。
即使使用瀏覽器的開發人員工具,也無法準確地識別資料庫查詢什麼時候發生,或者它是否會在操作(如上圖所示的篩選目錄)期間造成延遲。使用 Database tool,我們可以捕獲在任何用戶操作期間發生的確切資料庫活動,並進行進一步研究。
要做到這一點,我們只需打開 Performance Profiler,在Visual Studio 中通過點擊 Debug > Performance Profiler 或使用快捷鍵 Alt + F2 打開,然後勾選「Database」複選框來啟用該工具。要獲得更準確的配置,需要以 Release 配置而不是 Debug 運行應用程式。然後單擊 Start 啟動並開始分析應用程式。
以你感興趣的方式與你的應用程式進行交互,然後當你準備檢查數據時,單擊 Visual Studio 中的「Stop Collection」。
在收集停止後,Visual Studio 將快速處理收集到的數據,並生成一個圖表,顯示在分析會話期間發生的查詢,以及發生查詢的時間和數量。右鍵點擊任何列標題,將顯示可以幫助你排序和分析所記錄的活動的可用列。這樣可以非常快速地發現異常,比如隻影響少數記錄的長時間運行的查詢,或者使用錯誤連接字元串的查詢。
在確定了需要進一步研究的查詢之後,想要查找該查詢在程式碼中的何處發生,只需右鍵點擊該行並選擇「Go To Source File」。
只要有可能,該工具就會立即得到執行查詢的程式碼行或程式碼塊,從而省去了挖掘複雜程式碼庫的繁瑣任務。
試一試
這個特性可以在 Visual Studio 2019 16.3 或更高版本中找到,並且支援使用 ADO.NET 或 Entity Framework Core 的 .NET Core 項目。這個工具還支援 dotnet trace,這意味著我們可以在 .NET Core 運行的任何地方收集數據(包括Linux!),並在 Visual Studio 中分析這些數據。
原文鏈接
//devblogs.microsoft.com/visualstudio/database-profiling-with-visual-studio/