一款快速識別最慢語句的性能分析工具

来源:http://www.cnblogs.com/SameZhao/archive/2016/12/23/6214364.html
-Advertisement-
Play Games

ClearTrace 能幹啥 當我們的資料庫伺服器在某段業務高峰年期間,周期性出現如CPU接近 100%、記憶體耗盡、IO量大等問題時候,作為維護人員這時候壓力很大,在做一般性排除後仍然沒有找到原因。當我們需要進一步深入到語句分析層面找問題根源時,ClearTrace這款工具正好可以幫上忙。 通過該工 ...


ClearTrace 能幹啥

當我們的資料庫伺服器在某段業務高峰年期間,周期性出現如CPU接近 100%、記憶體耗盡、IO量大等問題時候,作為維護人員這時候壓力很大,在做一般性排除後仍然沒有找到原因。當我們需要進一步深入到語句分析層面找問題根源時,ClearTrace這款工具正好可以幫上忙。 通過該工具可以識別收集性能數據的這段時間,那類語句耗費系統資源最多,幫助快速定位性能瓶頸根源,處理棘手的性能問題。

小貼士

在使用ClearTrace工具前,需要通過SQL Profiles或Trace腳本實時收集一段時間性能數據,內容至少包括RPC:完成SQL:BatchCompleted事件TextDataCPU、讀、寫持續時間列。並保存為.trc文件。

  

ClearTrace特點

標準化SQL語句

ClearTrace "標準化" SQL 語句 ,消除SQL語句參數等不一致的語句,並加以合併為“同一類型”的語句。具體有以下特點:

 

  • 所有的數值、字元串和日期常數轉換為一個占位符 ,“#”表示
  • 抓取的預備SQL顯示為實際語句執行,不做任何更改
  • 伺服器端游標與“{游標}”首碼,這樣他們就可以被識別和移除
  • 抓取的sp_executesql顯示實際執行的SQL語句,不做任何更改
  • 抓取的存儲過程名稱標註為RPC:完成事件

 舉個例子:

捕獲到二個語句SQL1、SQL2,註意語句的主體部分都一樣,條件等號右邊參數值不一樣

SQL1:Select * From qryLinksByNewsletterID Where NewsletterID=19

SQL2:Select * From qryLinksByNewsletterID Where NewsletterID=10

 

SQLTrace 將SQL1和SQL2都被“標準化為”一類語句SQL(n)

SQL(n):SELECT * FROM QRYLINKSBYNEWSLETTERID WHERE NEWSLETTERID={##}

將類似的語句分組在一起,變成類似上面的標準化語句SQL(n),ClearTrace統計SQL(n)綜合所有語句的性能指標的參數值,這些指標值幫助我們識別哪些"同一類型"語句占用較多資源,並可能導致性能問題。

 

ClearTrace整合分析結果

1. 提供較豐富的操作界面

  

 

2. 分析前的查詢可通過條件“應用程式”、“主機名”、“登錄名”、“事件”篩選。

 

 備註:這裡“事件”選擇,當選擇“Statement”是結果統計的是SQL語句,當選擇“Batches”時結果統計的是存儲過程。這個選項可以區分是要做語句分析,還是存儲過程分析。

選擇“Statement”截圖

 

 

選擇“Batches”截圖

 

 

3. 查詢結果顯示列表,

Item:“標準化”的SQL腳本、#:執行次數、CPU 執行花費時間、Read邏輯讀次數、write寫次數、Duration總體花費時間,另外可選的還有平均CPU、平均Read、平均write、平均Durations。

關於如何從以上幾個參數緯度分析性能問題,網上已經有很多出色文章,這裡就不多說了。

 

 

4. 可以通過CPU、 Reads、 Writes 、 Duration、執行次數、平均CPU、平均Reads、 平均Writes 、 平均Duration等進行排序。這是重點,可迅速幫助我們識別哪些語句CPU使用最高、哪些IO使用最多等等,找到性能資源消費的TOP 50還是很方便的。

 

 

其他特性

  • 處理多個Trace文件
  • 處理過的數據存儲在資料庫中,可隨時查詢
  • 處理完成的trace文件可歸檔到指定的目錄

 

 

ClearTrace如何操作

第一步,下載ClearTrace工具並解壓,無需安裝直接雙擊ClearTrace(不同版本解壓後文件數量可能不一樣)。

第二步,出現提示創建資料庫配置對話框(使用前確認本地要有SQLServer實例安裝,並有本地Window賬號可訪問的許可權)。

 

第三步,確定後,按照提示點擊菜單Tool->Options,出現配置對話框,填寫可連接的SQLServer 實例名,以及創建資料庫名字(建議名稱:Tracereport),接著提示是否創建,點擊“是”即可。

 

第四步,接著選擇要分析的trc文件,點擊“import Files”,顯示導入進度和完成後的摘要信息。

導入進度顯示........

 

第五步,導入完成後,直接顯示分析查詢界面,接下來開始分析語句,找到性能殺手。

 

 

資源

ClearTrace版本下載

ClearTrace 版本Build 47:支持 SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, and SQL Server 2008。

ClearTrace 版本Build 42:支持SQL Server 2012之前版本。

下載地址:http://www.scalesql.com/cleartrace/download.html

論壇

http://forums.sqlteam.com/c/cleartrace. 使用中遇到任何Issue可以提交此處。

 

 

小結:

至此, 相關ClearTrace工具的介紹完畢,內容比較粗顯,意義在通過此類工具能給DBA或從事資料庫相關工作的朋友在性能調優時有幫助。同樣,感謝無私提供這個工具並一直維護、升級新版本的貢獻者們,正因有他們才讓我們的工作更有效率。

 

 如要轉載,請加本文鏈接並註明出處http://www.cnblogs.com/SameZhao/p/6214364.html 。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這個錯誤是因為有兩個相同的jar包,刪除其中一個就可以正常運行了。 ...
  • 數據準備 find find的第一個參數決定了要返回哪些文檔,用於指定查詢條件。要不指定查詢文檔,預設就是{},指定多個鍵/值對,相當於sql的and。第二個參數來指定想要的鍵(預設情況下,"_id"總是顯示)。 查詢條件 And查詢 使用AND型查詢時,應儘可能用最少的條件來限定結果的範圍。 當然 ...
  • Spark是現在應用最廣泛的分散式計算框架,oozie支持在它的調度中執行spark。在我的日常工作中,一部分工作就是基於oozie維護好每天的spark離線任務,合理的設計工作流並分配適合的參數對於spark的穩定運行十分重要。 Spark Action 這個Action允許執行spark任務,需 ...
  • 想安裝當然要先有一個MySql的安裝包 這裡使用的是mysql-5.7.12-winx64 安裝包百度雲:http://pan.baidu.com/s/1kVAuXuv 密碼:hr39 1.要將壓縮包解壓到你的指定位置(最好將要用的工具文件分類放好) 例如:D:\javaApp\mysql-5.7. ...
  • 【轉自網路】https://my.oschina.net/cers/blog/292191 PK Belongs to primary key 作為主鍵 NN Not Null 非空 UQ Unique index 不能重覆 BIN Is binary column 存放二進位數據的列 UN Uns ...
  • 分析: 資料庫設計應遵循三大範式分別為: 第一範式:確保表中每列的原子性(不可拆分); 第二範式:確保表中每列與主鍵相關,而不能只與主鍵的某部分相關(主要針對聯合主鍵),主鍵列與非主鍵列遵循完全函數依賴關係(完全依賴); 第三範式:非主鍵列之間沒有傳遞函數依賴關係(消除傳遞依賴); 詳述: 第一範式 ...
  • Took me a while to suffer from the first successful souce code installation of mysql-5.6.34. Just put it here and share it with u. Env.OS:Red Hat Ente ...
  • 在最開始階段,我們進行初始數據的收集工作,根據不同的業務場景,可能會涉及到的一些技術領域:分散日誌收集技術,諸如Scribe、Flume為代表的開源日誌收集系統;數據消息傳遞相關的技術,各種開源的消息隊列MQ,諸如ActiveMQ、RocketMQ、Kafka等;各種爬蟲技術、網頁解析技術;資料庫數 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...