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