事件探查器講解_第1頁
事件探查器講解_第2頁
事件探查器講解_第3頁
事件探查器講解_第4頁
事件探查器講解_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

SQLSERVER事件探查器初探U8產(chǎn)品支持部XX號(hào)工程師

XXXX年XX月XX日簡(jiǎn)單的SQL語句——select查詢語句語法:select列名|表達(dá)式from表|視圖where條件實(shí)例:表authors中有三個(gè)字段name(姓名字符型),sex(性別字符型),

age(年齡整型),現(xiàn)在要查詢姓名是張三的記錄,那么查詢語句為:Select*fromauthorswherename=‘張三’說明:*表示所有字段,字符型字段要用單引號(hào)括起來簡(jiǎn)單的sql語句——update更新語句語法:update表名set字段=值where條件實(shí)例:以authors表為例,現(xiàn)在要將張三的名字改為李四,那么語句為:Updateauthorssetname=‘李四’wherename=‘張三’簡(jiǎn)單的sql語句——insert插入語句語法:insertinto表名(字段名,…)values(字段值,…)實(shí)例:在表authors中插入一條記錄,姓名為王二,性別為男,年齡為28,那么語句為:Insertintoauthors(name,sex,age)values(‘王二’,‘男’,28)簡(jiǎn)單的sql語句——delete刪除語句語法:deletefrom表名where條件實(shí)例:刪除表authors中姓名為張三的記錄,那么刪除語句為:Deletefromauthorswherename=‘張三’整體概念

SQL事件探查器是圖形工具,使我們得以監(jiān)視Microsoft?SQLServer?實(shí)例中的事件。可以捕獲有關(guān)每個(gè)事件的數(shù)據(jù)并將其保存到文件或SQLServer表中供以后分析。 例如,我們可以對(duì)生產(chǎn)環(huán)境進(jìn)行監(jiān)視,了解執(zhí)行速度太慢而妨礙性能的存儲(chǔ)過程;了解到哪些SQL語句或者存儲(chǔ)過程產(chǎn)生了異常錯(cuò)誤導(dǎo)致程序中斷等等。

我們可以使用SQL事件探查器只監(jiān)視感興趣的事件,什么情況下如何決定那些事件是我們感興趣的,我們將會(huì)在后面提到。

要運(yùn)行事件探查器,系統(tǒng)所在硬盤可用空間至少要大于等于10M,否則跟蹤將會(huì)自動(dòng)停止。 如果跟蹤變得太大,可以基于需要的信息進(jìn)行篩選,以便只收集事件數(shù)據(jù)的子集。 監(jiān)視太多事件類會(huì)增加服務(wù)器和監(jiān)視進(jìn)程的開銷,并且可能導(dǎo)致跟蹤文件或跟蹤表變得很大,尤其是在進(jìn)行長時(shí)間監(jiān)視時(shí)。SQL事件探查器術(shù)語模板 模板定義想要使用SQL事件探查器監(jiān)視的每個(gè)事件的準(zhǔn)則。 每次啟動(dòng)事件探查器監(jiān)視時(shí)都會(huì)讓您選擇一個(gè)模板來進(jìn)行跟蹤,默認(rèn)是一個(gè)標(biāo)準(zhǔn)模板(SQLProfilerStandard)。里面有事先定義好的的事件和數(shù)據(jù)列,沒有篩選。 我們可以創(chuàng)建一個(gè)模板以指定使用哪些事件、數(shù)據(jù)列和篩選。然后可以保存該模板,并用當(dāng)前的模板設(shè)置啟動(dòng)跟蹤。捕獲的跟蹤數(shù)據(jù)基于模板中指定的選項(xiàng)。模板不執(zhí)行且必須用.tdf

擴(kuò)展名保存到文件。我們也可以創(chuàng)建一個(gè)自己的模板,并設(shè)置成每次啟動(dòng)自動(dòng)運(yùn)行該模板,具體操作如下: 點(diǎn)“工具”菜單下的“選項(xiàng)”,彈出如下窗口(請(qǐng)注意紅色區(qū)域):模板模板

【使用下列默認(rèn)跟蹤模板】:您可以在這里選擇一個(gè)默認(rèn)的跟蹤模板,這樣每次新建一個(gè)跟蹤時(shí)就以該模板為默認(rèn)模板;

【進(jìn)行連接后立即啟動(dòng)跟蹤】:選擇該選項(xiàng),連接上對(duì)應(yīng)的服務(wù)器后立即運(yùn)行默認(rèn)跟蹤模板進(jìn)行跟蹤;

【顯示】頁簽下您可以設(shè)置所使用的跟蹤窗體顯示的字體、字體的大小,這里就不在贅述。模板 我們還可以保存模板以減少我們的重復(fù)勞動(dòng)。保存模板涉及保存跟蹤定義,比如指定的數(shù)據(jù)列、事件和篩選。 跟蹤定義包括事件類、數(shù)據(jù)列、事件準(zhǔn)則(篩選)和所有其它用來創(chuàng)建跟蹤的屬性(捕獲的事件數(shù)據(jù)除外)。使用SQL事件探查器創(chuàng)建的模板保存在運(yùn)行SQL事件探查器的計(jì)算機(jī)上的文件中。 如果經(jīng)常監(jiān)視SQLServer,則保存模板以便分析性能。模板每次捕獲相同的事件數(shù)據(jù),并使用相同的跟蹤定義監(jiān)視同一事件,因而無須在每次創(chuàng)建跟蹤時(shí)都定義事件類和數(shù)據(jù)列。 另外,可以將模板提供給其他用戶,供其監(jiān)視特定的SQLServer事件。例如,支持提供商可提供給客戶一個(gè)模板??蛻羰褂眠@個(gè)模板捕獲所需的事件數(shù)據(jù),然后將這些數(shù)據(jù)發(fā)送給支持提供商供其分析。 我們可以在“文件”菜單下“新建”下的“跟蹤模板”里建立一個(gè)新的模板,選擇好對(duì)應(yīng)的事件類和數(shù)據(jù)列后將其保存,建議按應(yīng)用場(chǎng)景取名以便是使用,如“存儲(chǔ)過程跟蹤模板”、“錯(cuò)誤定位跟蹤模板”等。模板 同樣我們也可以修改保存在運(yùn)行SQL事件探查器的本地計(jì)算機(jī)上的文件中的模板以及從文件導(dǎo)出的模板。 如果沒有記住當(dāng)初用于創(chuàng)建跟蹤的模板,或希望以后再次運(yùn)行同一跟蹤,則可能需要從跟蹤文件導(dǎo)出模板。修改模板屬性(如事件類和數(shù)據(jù)列)的方法與當(dāng)初設(shè)置該屬性的方法相同??梢蕴砑雍蛣h除事件類和數(shù)據(jù)列,也可以對(duì)篩選進(jìn)行更改。修改模板后,以同一名稱保存它將重寫原來的模板。 當(dāng)處理現(xiàn)有跟蹤時(shí),可以查看屬性,但不能修改。警告:使用相同的名稱保存跟蹤文件將重寫原來的跟蹤文件,這將導(dǎo)致任何當(dāng)初捕獲的事件或已刪除或篩選的數(shù)據(jù)列丟失SQL事件探查器術(shù)語跟蹤 跟蹤基于選定的事件、數(shù)據(jù)列和篩選捕獲數(shù)據(jù)。 例如,可創(chuàng)建模板監(jiān)視異常錯(cuò)誤。為此,應(yīng)選擇跟蹤Exception

事件類以及

Error、State和Severity

數(shù)據(jù)列,這些都是為了使跟蹤結(jié)果提供有意義的數(shù)據(jù)而需收集的。保存模板后,便可將其作為跟蹤運(yùn)行,并且可收集關(guān)于服務(wù)器中發(fā)生的任何Exception

事件的數(shù)據(jù)??杀4娲烁檾?shù)據(jù),然后稍后重播或立即用于分析。SQL事件探查器術(shù)語篩選 當(dāng)創(chuàng)建跟蹤或模板時(shí),可以定義篩選由事件收集的數(shù)據(jù)的準(zhǔn)則。 如果跟蹤變得太大,可以基于想要的信息進(jìn)行篩選,以便只收集事件數(shù)據(jù)的子集。如果沒有設(shè)置篩選,跟蹤輸出中將返回選定事件類的所有事件。例如,可以將跟蹤中的MicrosoftWindows?2000用戶名限制為特定用戶,以將輸出數(shù)據(jù)減少到感興趣的那些用戶。也可以只跟蹤對(duì)特定數(shù)據(jù)庫的操作的信息,這樣在多帳套的服務(wù)器上就可以更快的收集到我們感興趣的信息。SQL事件探查器術(shù)語事件 事件是在Microsoft?SQLServer?引擎中生成的操作。例如: 登錄連接、失敗和斷開。

Transact-SQLSELECT、INSERT、UPDATE和DELETE語句。 遠(yuǎn)程過程調(diào)用(RPC)批處理狀態(tài)。 存儲(chǔ)過程的開始或結(jié)束。

SQL批處理的開始或結(jié)束。 存儲(chǔ)過程內(nèi)的語句的開始或結(jié)束。 寫入SQLServer錯(cuò)誤日志的錯(cuò)誤。 在數(shù)據(jù)庫對(duì)象上獲取或釋放的鎖。 打開的游標(biāo)。 安全權(quán)限檢查。 由事件生成的所有數(shù)據(jù)顯示在單個(gè)行中的跟蹤內(nèi)。該行包含詳細(xì)描述事件的數(shù)據(jù)列,稱為事件類。SQL事件探查器術(shù)語事件類 事件類是描述由服務(wù)器生成的事件的列。 事件類確定收集的數(shù)據(jù)類型,因此并不是所有數(shù)據(jù)列都適用于所有事件類。 事件類示例包括:

SQL:BatchCompleted,表示已完成SQL批處理。 運(yùn)行客戶端的計(jì)算機(jī)的名稱。 受事件影響的對(duì)象ID(如表名)。 發(fā)出語句的用戶的SQLServer名稱。 正在執(zhí)行的Transact-SQL語句文本或存儲(chǔ)過程文本。 事件開始和結(jié)束的時(shí)間。SQL事件探查器鍵盤快捷方式快捷鍵SQL事件探查器方案通常情況下,我們使用SQL事件探查器可以:

1、查找執(zhí)行最差的查詢:例如,可以創(chuàng)建跟蹤來捕獲與TSQL

StoredProcedure

事件類(尤其是RPC:Completed

和SQL:BatchCompleted)相關(guān)的事件。在這個(gè)跟蹤內(nèi)包含所有數(shù)據(jù)列,按Duration

分組并指定事件準(zhǔn)則。例如,如果指定事件的Duration

至少為

1,000毫秒,則可以跟蹤中排除運(yùn)行時(shí)間短的事件。根據(jù)需要可以增大Duration

的最小值。如果想一次只監(jiān)視一個(gè)數(shù)據(jù)庫,為DatabaseID

事件準(zhǔn)則指定一個(gè)值。 單這個(gè)用途對(duì)我們來說不是主要的,對(duì)測(cè)試和開發(fā)人員這應(yīng)該是常需要用到的。SQL事件探查器方案

2、監(jiān)視存儲(chǔ)過程的性能:例如,可以創(chuàng)建一個(gè)跟蹤來捕獲與StoredProcedure事件類(SP:Completed、SP:Starting、SP:StmtCompleted

和SP:StmtStarting)和

TSQL事件類(SQL:BatchStarting

SQL:BatchCompleted)相關(guān)的事件。在這個(gè)跟蹤內(nèi)包含所有數(shù)據(jù)列并按ClientProcessID

分組。如果想一次只監(jiān)視一個(gè)數(shù)據(jù)庫,為DatabaseID

事件準(zhǔn)則指定一個(gè)值。同樣,如果想一次只監(jiān)視一個(gè)存儲(chǔ)過程,為ObjectID

事件準(zhǔn)則指定一個(gè)值。 同樣,這個(gè)用途對(duì)于我們也不是常用的。SQL事件探查器方案

3、審核Microsoft?SQLServer?活動(dòng) 可以使用SQL事件探查器審核SQLServer中的活動(dòng)。例如,如果安全管理員需要隨時(shí)了解誰登錄到了服務(wù)器,可以創(chuàng)建SQL事件探查器跟蹤,提供已登錄到服務(wù)器或從服務(wù)器注銷的用戶的完整視圖。之后,可出于法律目的使用這些信息記錄活動(dòng),和出于技術(shù)目的使用這些信息跟蹤違反安全策略的行為。

4、監(jiān)視每個(gè)用戶的Transact-SQL活動(dòng) 可以創(chuàng)建跟蹤來捕獲與Sessions

事件類、ExistingConnection

和TSQL

事件類相關(guān)的事件。將所有數(shù)據(jù)列包含在此跟蹤內(nèi),不要指定任何事件準(zhǔn)則,并按DBUserName

將捕獲的事件分組。 這兩項(xiàng)內(nèi)容對(duì)系統(tǒng)管理員比較實(shí)用。SQL事件探查器方案

5、分析程序業(yè)務(wù)流程和數(shù)據(jù)庫內(nèi)數(shù)據(jù)流向 可以創(chuàng)建一個(gè)跟蹤來捕獲與StoredProcedure事件類(SP:Completed、SP:Starting、SP:StmtCompleted

和SP:StmtStarting)和

TSQL事件類(SQL:BatchStarting

SQL:BatchCompleted)相關(guān)的事件。用以分析程序的流程以及數(shù)據(jù)庫內(nèi)的表間關(guān)系。

這是一個(gè)對(duì)我們非常有用的用途,他可以幫助我們理解程序的業(yè)務(wù)流程,數(shù)據(jù)流等。我們?cè)趯W(xué)習(xí)一個(gè)新的產(chǎn)品,新的模塊、新的功能時(shí),可以利用這個(gè)功能來了解其使用到那些表,涉及到那些表。甚至我們可以知道這些表的各個(gè)字段的具體涵義是什么。經(jīng)常接到詢問某張單據(jù)的某項(xiàng)內(nèi)容具體對(duì)應(yīng)那張表的那個(gè)字段具體的電話。其實(shí)您只要在界面上制作一張單據(jù),然后在保存前運(yùn)行一個(gè)跟蹤,然后分析跟蹤里面的插入語句就可以清楚的知道以上信息了。SQL事件探查器方案

6、定位出錯(cuò)語句 使用事件類錯(cuò)誤和警告下的ERRORLOG、EVENTLOG、EXCEPTION等相關(guān)事件,可以在程序發(fā)生異常的時(shí)候快速定位具體位置。 這個(gè)方案對(duì)我們處理數(shù)據(jù),特別是處理一些由于數(shù)據(jù)庫里存放的數(shù)據(jù)由于某種原因?qū)е掠挟惓?shù)據(jù)時(shí)引發(fā)的一些錯(cuò)誤有意想不到的功效。SQL事件探查器監(jiān)控事件分類常用的事件分類:TSQL事件類TSQL事件類是一個(gè)常用的事件,其對(duì)應(yīng)的常用事件解釋如下:TSQL事件對(duì)應(yīng)數(shù)據(jù)列:存儲(chǔ)過程事件類存儲(chǔ)過程事件類是執(zhí)行存儲(chǔ)過程所產(chǎn)生的事件的集合,也是一個(gè)常用的事件類,其對(duì)應(yīng)的常用事件解釋如下:存儲(chǔ)過程事件類SP:Starting---表明存儲(chǔ)過程已被啟動(dòng)的時(shí)間,其監(jiān)視到的結(jié)果是整個(gè)存儲(chǔ)過程的調(diào)用,結(jié)果形式如:execSa_MoveSaleDetail

'Sa_TempSaleDetail_GCCXL0','','','','','','','',''其中

Sa_MoveSaleDetail

為存儲(chǔ)過程名稱;

exec為SQL的一個(gè)命令,可以理解為執(zhí)行;

‘Sa_TempSaleDetail_GCCXL0’,‘’,‘’,‘’,‘’,‘’,‘’,‘’,‘’傳遞給該存儲(chǔ)過程的參數(shù);SP:Completed、RPC:Starting、RPC:Completed返回的結(jié)果都與此類似。存儲(chǔ)過程事件類SP:StmtStarting---表明正在啟動(dòng)存儲(chǔ)過程內(nèi)的某語句的時(shí)間,其監(jiān)視到的結(jié)果是一個(gè)存儲(chǔ)過程內(nèi)部的一條語句的執(zhí)行,結(jié)果形式如:--Sa_MoveSaleDetailifltrim(rtrim(@chrwhere1))='newReport_ParameterFromTempTable'其中:

--Sa_MoveSaleDetail指明該語句所屬的存儲(chǔ)過程;

ifltrim(rtrim(@chrwhere1))=‘newReport_ParameterFromTempTable’指的是執(zhí)行的具體的SQL語句;

SP:StmtCompleted返回的結(jié)果與此類似。存儲(chǔ)過程事件類

以上兩部分的事件您可以理解為整體和局部的概念,也就是說一個(gè)是跟蹤整體的結(jié)果,一個(gè)是跟蹤明細(xì)的結(jié)果。 如果是希望了解程序的流程,可以跟蹤整體,知道其使用了那些存儲(chǔ)過程即可。然后再具體查看該存儲(chǔ)過程,了解其內(nèi)部處理流程; 此處插入說明一點(diǎn),要查看某個(gè)存儲(chǔ)過程的具體內(nèi)容,可以直接到企業(yè)管理器里找到該存儲(chǔ)過程雙擊打開;也可以在查詢分析器里利用系統(tǒng)存儲(chǔ)過程SP_HelpText來查看,如前面說到的存儲(chǔ)過程Sa_MoveSaleDetail,我們可以在查詢分析器對(duì)應(yīng)的數(shù)據(jù)庫下執(zhí)行如下命令:

SP_HelpText

Sa_MoveSaleDetail來查看其明細(xì)內(nèi)容。但是要注意的一點(diǎn)是:必須該存儲(chǔ)過程沒有加密,否則無法查看。 如果是跟蹤錯(cuò)誤,建議選擇明細(xì)的跟蹤,這樣可以具體的定位到某個(gè)存儲(chǔ)過程里的某條語句出的錯(cuò)。錯(cuò)誤和警告事件類錯(cuò)誤和警告是在發(fā)生SQLServer錯(cuò)誤或警告時(shí)產(chǎn)生的事件類集合(例如,一個(gè)在編譯存儲(chǔ)過程中產(chǎn)生的錯(cuò)誤,或者一個(gè)SQLServer中的異常錯(cuò)誤),其對(duì)應(yīng)的常用事件解釋如下:錯(cuò)誤和警告事件類 該事件類里面又以Exception事件類為主要,基本上只要是SQL里面發(fā)生的錯(cuò)誤其都能跟蹤得到,這為我們快速定位錯(cuò)誤提供了簡(jiǎn)便而準(zhǔn)確的方法,我們來看下面的錯(cuò)誤展示。 首先我們?cè)谶\(yùn)行一個(gè)跟蹤,挑選出要跟蹤的事件類為

SQL:BatchStarting;

SQL:BatchCompleted; Exception;

數(shù)據(jù)列為默認(rèn)的,我們?cè)僭诓樵兎治銎骼飯?zhí)行一條SQL語句:

Update rdrecord

set id=‘11’

報(bào)錯(cuò)如下:服務(wù)器:消息2601,級(jí)別14,狀態(tài)3,行1不能在具有唯一索引'aaRdRecord_PK'的對(duì)象'RdRecord'中插入重復(fù)鍵的行。語句已終止。錯(cuò)誤和警告事件類 停止跟蹤,看看是否正確跟蹤出錯(cuò)誤:錯(cuò)誤和警告事件類 我們看到,沒有任何問題,錯(cuò)誤得以跟蹤到,注意其上我以藍(lán)色表注的語句,其TEXTDATA的內(nèi)容都是一致的,只是對(duì)應(yīng)的事件類分別為SQL:BatchStarting和SQL:BatchCompleted,正好把EXCEPTION事件類對(duì)應(yīng)的事件給包在中間,那么我們就可以知道,引起錯(cuò)誤的語句就是Update rdrecord

set id='11‘了。 怎么樣,定位錯(cuò)誤就是這么簡(jiǎn)單!我們把圖再放在這里給大家對(duì)比一下看看:跟蹤詳解啟動(dòng)、暫停和停止跟蹤 在使用SQL事件探查器創(chuàng)建了模板后,可以使用新跟蹤啟動(dòng)、暫?;蛲V共东@數(shù)據(jù)。 當(dāng)啟動(dòng)跟蹤且將服務(wù)器定義為源時(shí),Microsoft?SQLServer?將創(chuàng)建一個(gè)隊(duì)列,以便為捕獲的服務(wù)器事件提供一個(gè)臨時(shí)存放位置。 每個(gè)跟蹤可以有多個(gè)發(fā)生器。發(fā)生器收集特定的事件分類內(nèi)的事件,并將數(shù)據(jù)發(fā)送到隊(duì)列。事件按其放入隊(duì)列內(nèi)的順序讀取。這種讀取方法稱為先進(jìn)/先出(FIFO)。 使用SQL事件探查器時(shí),啟動(dòng)跟蹤將打開一個(gè)新的跟蹤窗口(如果沒有窗口打開),并立即捕獲數(shù)據(jù)。當(dāng)使用SQLServer系統(tǒng)存儲(chǔ)過程時(shí),每次啟用SQLServer實(shí)例時(shí)可手工或自動(dòng)啟動(dòng)跟蹤。一啟跟蹤,就會(huì)立即捕獲數(shù)據(jù)。啟動(dòng)跟蹤后,只能修改跟蹤的名稱。 暫停跟蹤可防止捕獲更多的事件數(shù)據(jù),直到重新啟動(dòng)。重新啟動(dòng)跟蹤將繼續(xù)執(zhí)行跟蹤操作。先前捕獲的所有數(shù)據(jù)都不丟失。重新啟動(dòng)跟蹤時(shí),從啟動(dòng)的那一點(diǎn)起繼續(xù)捕獲數(shù)據(jù)。當(dāng)暫停跟蹤時(shí),可以更改名稱、事件、列和篩選。但是不能更改要將跟蹤發(fā)送到的目的地或服務(wù)器連接。 停止跟蹤將停止捕獲數(shù)據(jù)。一旦停止了跟蹤,除非已將數(shù)據(jù)捕獲到了跟蹤文件或跟蹤表中,否則重新啟動(dòng)該跟蹤將丟失以前捕獲的數(shù)據(jù)。當(dāng)停止跟蹤時(shí),將保留以前選擇的所有跟蹤屬性。當(dāng)停止跟蹤時(shí),可以更改名稱、事件、列和篩選。跟蹤詳解查看和分析跟蹤 使用SQL事件探查器可以查看跟蹤內(nèi)捕獲的事件數(shù)據(jù)。SQL事件探查器基于定義的跟蹤屬性顯示數(shù)據(jù)。 分析Microsoft?SQLServer?數(shù)據(jù)的一個(gè)方法是將數(shù)據(jù)復(fù)制到另一個(gè)程序,如SQL查詢分析器或索引優(yōu)化向?qū)?。索引?yōu)化向?qū)Э梢允褂冒琒QL批處理和遠(yuǎn)程過程調(diào)用(RPC)

事件(以及Text

數(shù)據(jù)列)的跟蹤文件。使用此向?qū)r(shí),通過指定服務(wù)器和數(shù)據(jù)庫名稱,可以對(duì)不同的服務(wù)器和數(shù)據(jù)庫分析捕獲的數(shù)據(jù)。 使用SQL事件探查器打開跟蹤時(shí),如果跟蹤文件是由SQL事件探查器或事件探查器存儲(chǔ)過程創(chuàng)建的,則該文件不需要帶.trc

文件擴(kuò)展名。

說明

SQL事件探查器還可以讀取SQL跟蹤日志文件(.log)和類屬SQL腳本文件。打開不帶.log文件擴(kuò)展名的SQL跟蹤程序.log文件(如trace.txt)時(shí),將文件格式指定為

SQLTrace_Log。 可以用自定義的字體、字體大小、預(yù)覽線和客戶端緩沖區(qū)大小來配置SQL事件探查器的顯示,以便有助于分析跟蹤。跟蹤詳解分析數(shù)據(jù)以解決問題 使用SQL事件探查器時(shí),可以按Duration、CPU、Reads

或Writes

數(shù)據(jù)列將跟蹤或跟蹤文件分組以解決與數(shù)據(jù)有關(guān)的問題,如性能差或邏輯讀取數(shù)特別高的查詢。 通過將跟蹤保存到表和使用Transact-SQL查詢事件數(shù)據(jù),可以找到附加的信息。例如,若要確定哪些SQL:BatchCompleted

事件有過長的等待時(shí)間,可執(zhí)行:

SELECTTextData,Duration,CPU FROMtrace_table_name

WHEREEventClass=12--SQL:BatchCompletedevents ANDCPU<(.4*Duration)跟蹤詳解我們先來看一張圖片,注意紅色標(biāo)注:跟蹤詳解 說明我們可以將跟蹤的結(jié)果保存到文件里或者保存到數(shù)據(jù)庫的表里。 需要說明一點(diǎn)的是,如果保存在文件里,那么您在使用查詢功能時(shí)需要注意一點(diǎn):大小寫敏感,也就是說查詢區(qū)分大小寫,如RDRECORD與rdrecord是不同的內(nèi)容。 而如果保存在表里的話則沒有這種缺點(diǎn),但是如果您希望保存在表里,最好選擇其他服務(wù)器上的數(shù)據(jù)庫來保存,特別是一些對(duì)數(shù)據(jù)庫操作頻繁的動(dòng)作,如果保存在同一服務(wù)器上,也最好不要將結(jié)果表建立在目標(biāo)數(shù)據(jù)庫里,否則將會(huì)嚴(yán)重影響效率。跟蹤詳解查找跟蹤內(nèi)的特定事件 下面是查找和分組跟蹤內(nèi)事件的基本步驟:1、創(chuàng)建跟蹤。定義跟蹤時(shí),除了要捕獲的任何其它數(shù)據(jù)列外,還要捕獲EventClass、ClientProcessID

和StartTime

數(shù)據(jù)列。按EventClass

數(shù)據(jù)列將捕獲的數(shù)據(jù)分組,并將跟蹤捕獲到文件或表。2、查找目標(biāo)事件。打開跟蹤文件或表,并展開想要的事件類的節(jié)點(diǎn)(如DeadlockChain)。(可以在跟蹤寫入文件時(shí)打開文件進(jìn)行查看,除非跟蹤位于運(yùn)行MicrosoftWindows?98的計(jì)算機(jī)上。使用"查看"菜單中的"刷新"命令顯示新行。)在跟蹤內(nèi)搜索直到找到正在查找的事件(可以使用SQL事件探查器的“編輯”菜單上的“查找”選項(xiàng)幫助查找跟蹤內(nèi)的值)。記下所需事件的ClientProcessID

和StartTime

數(shù)據(jù)列中的值。跟蹤詳解3、在上下文中顯示事件。顯示跟蹤數(shù)據(jù)列屬性,并按ClientProcessID

而不是EventClass

分組。展開要查看的每個(gè)客戶端進(jìn)程ID的節(jié)點(diǎn)。手工搜索跟蹤,或使用"查找"選項(xiàng),直到找到前面記下的目標(biāo)事件的StartTime

值。這些事件與其它屬于每個(gè)所選客戶端進(jìn)程ID的事件一起按時(shí)間順序顯示。例如,跟蹤內(nèi)捕獲的Deadlock

和DeadlockChain

事件緊接在展開的客戶端進(jìn)程ID中的SQL:BatchStarting

事件之后顯示。 可以使用同樣的技巧查找按ServerName、DatabaseID

和ObjectID

分組的事件。一旦找到要查找的事件,按ClientProcessID、ApplicationName

或其它事件類分組,按時(shí)間順序查看相關(guān)活動(dòng)。 如果跟蹤文件位于運(yùn)行MicrosoftWindows95/98的計(jì)算機(jī)上,則SQL事件探查器不能在跟蹤文件正用于捕獲事件時(shí)打開它。此外:運(yùn)行在WindowsNT?4.0上的SQL事件探查器不能打開位于Windows95/98共享目錄的跟蹤或腳本文件。

SQL事件探查器訪問遠(yuǎn)程計(jì)算機(jī)上的跟蹤或腳本文件時(shí),如果這些文件后來變得不可用,則SQL事件探查器會(huì)引起問題。跟蹤詳解重播跟蹤 在創(chuàng)建或編輯跟蹤時(shí),可以保存跟蹤供以后重播。SQL事件探查器的特色是有一個(gè)多線程播放引擎,它能模擬用戶連接和SQLServer身份驗(yàn)證,使用戶得以重新產(chǎn)生跟蹤內(nèi)捕獲的活動(dòng)。因此,重播對(duì)解決應(yīng)用程序或進(jìn)程的問題很有幫助。識(shí)別出問題并進(jìn)行了糾正后,對(duì)糾正后的應(yīng)用程序或進(jìn)程運(yùn)行找到了潛在問題的那個(gè)跟蹤,然后重播原來的跟蹤并比較結(jié)果。 跟蹤重播支持使用重播到斷點(diǎn)和游標(biāo)的方式進(jìn)行調(diào)試,這在分析長腳本時(shí)尤為有用。跟蹤詳解說明:對(duì)捕獲數(shù)據(jù)以進(jìn)行重播的跟蹤使用樣本跟蹤模板SQLProfilerTSQL_Replay。 為了在運(yùn)行Microsoft?SQLServer?的(目標(biāo))計(jì)算機(jī)上,而不是在當(dāng)初跟蹤的(源)計(jì)算機(jī)上重播跟蹤: 必須在目標(biāo)上與源相同的數(shù)據(jù)庫中創(chuàng)建跟蹤內(nèi)包含的所有登錄和用戶。 目標(biāo)上的所有登錄和用戶必須具有與它們?cè)谠粗邢嗤臋?quán)限。 所有登錄的密碼必須與執(zhí)行重播的用戶密碼相同。 重播與丟失的或不正確的登錄相關(guān)的事件會(huì)導(dǎo)致重播錯(cuò)誤,但重播操作會(huì)繼續(xù)。

為了在SQLServer實(shí)例(目標(biāo)),而不是在當(dāng)初跟蹤的(源)計(jì)算機(jī)上重播跟蹤,需滿足下列任一條件: 目標(biāo)上的數(shù)據(jù)庫ID必須與源上的數(shù)據(jù)庫ID相同。這可以通過從源創(chuàng)建master數(shù)據(jù)庫的備份以及跟 蹤內(nèi)所引用的任何用戶數(shù)據(jù)庫,然后在目標(biāo)上還原這些數(shù)據(jù)庫來實(shí)現(xiàn)。

必須將跟蹤內(nèi)包含的每個(gè)登錄的默認(rèn)數(shù)據(jù)庫在目標(biāo)上設(shè)置成登錄各自的目標(biāo)數(shù)據(jù)庫。例如,在源上,要重播的跟蹤包含數(shù)據(jù)庫Fred_Db

內(nèi)的登錄Fred的活動(dòng)。因此在目標(biāo)上,必須將登錄Fred的默認(rèn)數(shù)據(jù)庫設(shè)置成與

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論