1. 程式人生 > >Sql Server Profiler轉換為擴充套件事件

Sql Server Profiler轉換為擴充套件事件

前言

Sql Server 2008 開始有擴充套件事件功能,到 sqlserver 2012 開始,擴充套件事件有了UI視覺化介面操作。在我跟很多客戶的工程師(開發,DBA,運維都有)交流過後,發現很少有人喜歡使用擴充套件事件。我想這是有原因的:首先擴充套件事件看起來操作更麻煩,建立一個新的事件會話比原來更復雜。其次更重要的是擴充套件事件沒法實時的跟蹤語句,會有一段時間的延遲(1分鐘左右)

但是擴充套件事件更輕量,對系統開銷更小,並且可以收集更多的資訊。以後肯定是會用到越來越普遍的。今天主要分享怎麼把profile直接轉換為擴充套件事件,讓很多習慣語句使用profiler的同學可以很輕鬆就轉變過來.

正文

建立proflier

首先建立一個profiler。選擇好對應的事件並設定好篩選條件
這裡寫圖片描述

轉換為擴充套件事件
查詢出來建立proflier使用的trace id. 可以通過開始和停止profiler,來確定對應的ID
這裡寫圖片描述

這裡借用的是Jonathan Kehayias 提供的指令碼,需要的同學可以去下面連結下載

Jonathan Kehayias提供的轉換指令碼
執行下面的語句,traceid是剛才查詢出來的,owentest是自己給擴充套件事件取的名字
後面2個選項預設。

sp_SQLskills_ConvertTraceToExtendedEvents  
    @TraceID
=3, @SessionName='owentest', @PrintOutput = 1, @Execute = 0

就能夠生成建立事件會話的TSQL 語句。執行生成的TSQL語句。

使用建立的會話
找到新建的事件會話並啟動
這裡寫圖片描述
檢視實時的監控資料
這裡寫圖片描述
預設只有如下2個列
這裡寫圖片描述

可以通過選擇,來新增需要的列
這裡寫圖片描述
這裡寫圖片描述
選擇後的樣子
這裡寫圖片描述

總結

總的來講,通過一個儲存過程可以很輕鬆的把proflier轉換為擴充套件事件。而且擴充套件事件慢慢的也會越來越易用。擴充套件事件是例項級別的。每個連到資料庫上的人都可以看,這是proflier沒有的。