全面掌握SQL Profiler系列2:快速使用
原創【51CTO獨家特稿】本系列文章第1篇:原理與相關概念
本篇的議題如下:
1. 如何配置權限
2. 啟動SQL Profiler
3. 介紹SQL Profiler 的GUI
4. 保存一個跟蹤
通過上一篇文章的講述,相信大家已經對SQL Profiler有了一個初步的了解,或者有些朋友已經開始磨拳擦掌,想躍躍欲試了。在開始使用SQL Profiler之前,有一些問題需要注意。
1. 不要隨意的在生產環境下(或者說:實際的數據庫工作的服務器環境)輕易的使用SQL Profiler,特別是在初學的時候。因為使用SQL Profiler會對服務器產生壓力,帶來一定的性能的影響,在初學的時候,不要拿正式的環境做實驗。
2. ***在自己的本地搭建測試的數據庫,然后采用一些腳本或者工具來模擬對數據庫的使用。在后面的講解中,我會運行一些示例的SQL 腳本來模擬。
3. SQL Profiler是一個操作性比較強的工具,***是跟著本系列中的示例,一個個的動手操作和體會。
理解如何配置權限
在SQL Server中,正如不是誰都可以創建表,試圖一樣,也不是誰都可以自由的運行SQL Profiler的。因為SQL Profiler在運行的過程中可以看到很多的與服務器以及客戶端相關的信息,所以要求運行這個工具的權限也很高。
在默認情況下,只有sa(SQL Server中的一個超級用戶)和在SYSADMIN組中的用戶可以運行SQL Profiler。在SQL Server 2005中,也可以通過用sa或者SYSADMIN用戶給其他用戶授權,從而使得其他的SQL Server用戶也可以有這個權限。授權的SQL 腳本如下圖2-1所示:
如上圖所示,我們可以將LoginID替換為我們想要授權的用戶名。
下面的一段腳本是收回這個授權的,如圖2-2所示:
啟動SQL Profiler
好,有了權限之后,我們就來好好的體驗一把!
可以通過很多的方式打開SQL Profiler。我這里給大家介紹一下:
1. 使用命令行工具打開。步驟非常簡單,只要在CMD命令窗口輸入“profiler“,然后按下“回車”就行了。這里需要注意的是,如果安裝的是SQL Server 2008,那么就輸入“profiler”,如果安裝的是SQL Server 2005,那么就輸入“profiler90”。
我個人喜歡使用命令行方法,快捷!
注:這里非常抱歉,因為我所在的環境安裝的都是英文版的操作系統與軟件,所以很多的時候,一些界面會以英文的形式顯示,希望朋友們見諒!
2. 直接在SQL Server Management Studio的菜單中打開,如圖2-3所示:
不管用什么方式,打開SQL Profiler之后,就看到如下的界面,如圖2-4所示:
然后,在菜單“File”中選擇“New Trace”,如圖2-5所示:
當我們選擇了“New Trace”(創建新跟蹤)之后,就會彈出如下的界面,如圖2-6所示:
使用合法的身份驗證方式進入之后,就會看到選擇要跟蹤的事件的界面,如圖2-7所示:
在這個界面中,包含了兩個選項卡,一個是“General”,另外一個是“Events Selection”。這里我們很有必要對界面中做一些簡單的介紹。
在“General”選項卡中,我們可以對跟蹤進行命名,還可以選擇不同的模板,并且還可以設置很多不同的選項。
其中,Trace Provider name就是指的我們要跟蹤的SQL Server的實例名;Trace provide type,指的就是數據庫的版本名,而version就是版本的數字表示。
在這里,比較重要的一個選擇就是“Use the template”,如圖2-8所示:
在這里可以選擇一個跟蹤的模板,不同的模板,功能不一樣,并且模板中事件,數據列,過濾器等都不一樣!每一種模板的用處,我們會在后續文章講述。
另外,在““Events Selection選項卡”中,選擇我們要跟蹤的事件,如圖2-9所示:
這里出于體驗的目的,我們將一切都保持默認!
下面,我們就開始啟動SQL Profiler去監控數據庫中發生的活動:點擊“Run”按鈕,如圖2-10所示:
那么啟動之后,因為這個時候SQL Profiler是對整個SQL Server實例進行監控的,也就是說,在SQL Server中的任意一個數據庫發生了任何的活動,都會被SQL Profiler捕獲到(當然,如果設置了過濾器就例外了)。
為了使得效果明顯,我這里運行一些腳本,對數據庫進行一些操作,起到模擬的作用。我們看到下面的一個效果圖2-11所示:
從圖中可以看到,我在SQL Server運行一個查詢,這個時候SQL Profiler立刻就捕獲到了這個動作。
#p#
介紹SQL Profiler 的GUI
對于SQL Profiler的跟蹤窗口,有很多我們需要學習的東西,下面我們就通過一個比較全面的圖(2-12)來看看:
對于圖2-12:
1. 界面分為兩個部分,在上面標記為紅色的那個區域,在這里就顯示了Profiler捕獲到的事件,每一行就代表一個發生的事件。
2. 不是所有的事件都包含相同的數據列,例如在圖中,有些事件,如Audit Logout, 在TextData列沒有數據,這就說明,TextData不是這個事件的事件信息列。
3. 在界面下半部分的那個紅色區域,顯示了TextData的詳細的信息(前提是如果事件有T extData列),另外,對于不同的事件,TextData顯示的數據是不一樣的。例如,對與RPC:Completed事件,TextData就顯示了正在執行的存儲過程的名稱。對于一些事件,還可以顯示執行計劃的XML格式。
4. 在界面的最下面,還顯示了“Trace is running”,顯示當前Profiler的狀態。
5. 通過點擊工具欄的按鈕,可以暫停此時跟蹤,如圖2-13所示:
6. 還可以停止跟蹤,如圖2-14:
保存一個跟蹤
當Profiler運行了一段時間之后,就可以停止,并且將跟蹤的數據保存。這里需要注意的是:因為我們之前采用了默認的設置,此時數據全部是在服務器的內存中的,如果跟蹤的時間越長,那么數據量就會越多,會消耗很多的內存。
如圖2-15,保存此次跟蹤:
然后為跟蹤命名,如圖2-16所示:
之后,數據就保存起來了!
如果要查看這個跟蹤文件中的數據,可以再用Profiler加載,如圖2-17所示:
加載之前我們創建的跟蹤文件,這時候,我們就可以查看之前數據庫中發生的活動,從而進行分析,如圖2-18所示:
在進行性能診斷的時候,我們會采用DTA工具來加載和分析跟蹤文件。具體的我們后文講述,今天就到這里!
【編輯推薦】