日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > > 充電吧
[導(dǎo)讀]介紹經(jīng)常會(huì)有人問profile工具該怎么使用?有沒有方法獲取性能差的sql的問題。自從轉(zhuǎn)mysql我自己也差不多2年沒有使用profile,忽然profile變得有點(diǎn)生疏不得不重新熟悉一下。這篇文章主

介紹

經(jīng)常會(huì)有人問profile工具該怎么使用?有沒有方法獲取性能差的sql的問題。自從轉(zhuǎn)mysql我自己也差不多2年沒有使用profile,忽然profile變得有點(diǎn)生疏不得不重新熟悉一下。這篇文章主要對(duì)profile工具做一個(gè)詳細(xì)的介紹;包括工具的用途和使用方法等。profile是SQLServer自帶的一個(gè)性能分析監(jiān)控工具,它也可以生成數(shù)據(jù)庫(kù)引擎優(yōu)化顧問分析需要的負(fù)載數(shù)據(jù),比如開發(fā)對(duì)功能進(jìn)行調(diào)試需要收集執(zhí)行sql使用profile就是一個(gè)非常好的辦法,profile主要用于在線實(shí)時(shí)監(jiān)控和收集數(shù)據(jù)用于后期的分析使用,它可以將收集的數(shù)據(jù)保存成文件和插入到表。?

跟蹤屬性


一、常規(guī)

將跟蹤的記錄保存到指定的文件。

1.最大文件大小

指定最大文件大小的跟蹤在達(dá)到最大文件大小時(shí),會(huì)停止將跟蹤信息保存到該文件。使用此選項(xiàng)可將事件分組成更小、更容易管理的文件。此外,限制文件大小使得無(wú)人參與的跟蹤運(yùn)行起來(lái)更加安全,因?yàn)楦檿?huì)在達(dá)到最大文件大小后停止。可以為通過(guò) Transact-SQL 存儲(chǔ)過(guò)程或使用 SQL Server Profiler創(chuàng)建的跟蹤設(shè)置最大文件大小。

最大文件大小選項(xiàng)的上限為 1 GB。默認(rèn)最大文件大小為 5 MB

注意:最大文件的大小建議不要設(shè)的太大,特別是需要用于數(shù)據(jù)庫(kù)引擎優(yōu)化顧問使用的文件,太大的跟蹤文件需要很長(zhǎng)的分析的時(shí)間而且由于數(shù)據(jù)庫(kù)引擎優(yōu)化顧問也是把收集的負(fù)載文件執(zhí)行一遍有時(shí)候可能會(huì)導(dǎo)致負(fù)載過(guò)大分析失敗,同時(shí)對(duì)服務(wù)器的壓力持續(xù)的時(shí)間過(guò)長(zhǎng)對(duì)業(yè)務(wù)影響也會(huì)比較大,一般設(shè)置幾兆或者幾十兆即可,同時(shí)啟動(dòng)文件滾動(dòng)更新,多次分析。

2.啟用文件滾動(dòng)更新

如果使用文件滾動(dòng)更新選項(xiàng),則在達(dá)到最大文件大小時(shí),SQL Server 會(huì)關(guān)閉當(dāng)前文件并創(chuàng)建一個(gè)新文件。新文件與原文件同名,但是文件名后將追加一個(gè)整數(shù)以表示其序列。例如,如果原始跟蹤文件命名為 filename_1.trc,則下一跟蹤文件為 filename_2.trc,依此類推。如果指定給新滾動(dòng)更新文件的名稱已經(jīng)被現(xiàn)有文件使用,則將覆蓋現(xiàn)有文件,除非現(xiàn)有文件為只讀文件。默認(rèn)情況下,將跟蹤數(shù)據(jù)保存到文件時(shí),會(huì)啟用文件滾動(dòng)更新選項(xiàng)。

3.服務(wù)器處理跟蹤數(shù)據(jù)

確保服務(wù)器記錄每個(gè)跟蹤事件,如果記錄事件會(huì)顯著降低性能,可以清除服務(wù)器處理跟蹤數(shù)據(jù),這樣服務(wù)器不會(huì)再記錄事件。 4.最大行數(shù)

指定有最大行數(shù)的跟蹤在達(dá)到最大行數(shù)時(shí),會(huì)停止將跟蹤信息保存到表。每個(gè)事件構(gòu)成一行,因此該參數(shù)可設(shè)置收集的事件數(shù)的范圍。設(shè)置最大行數(shù)使得無(wú)人參與的跟蹤運(yùn)行起來(lái)更加方便。例如,如果需要啟動(dòng)一個(gè)將跟蹤數(shù)據(jù)保存到表的跟蹤,同時(shí)希望在該表變得過(guò)大時(shí)停止跟蹤,則可以使其自動(dòng)停止。

如果已指定并且達(dá)到了最大行數(shù),將在運(yùn)行 SQL Server Profiler的同時(shí)繼續(xù)運(yùn)行跟蹤,但不再記錄跟蹤信息。SQL Server Profiler將繼續(xù)顯示跟蹤結(jié)果,直到跟蹤停止

5.啟用跟蹤停止時(shí)間?

啟用跟蹤停止時(shí)間之后,到了指定的時(shí)間跟蹤自動(dòng)停止。每一次跟蹤建議都必須得設(shè)置一個(gè)跟蹤停止時(shí)間防止忘記關(guān)閉跟蹤導(dǎo)致服務(wù)器空間被占滿,默認(rèn)跟蹤1小時(shí)。

?

注意:

從 SQL Server 2005 開始,服務(wù)器以微秒(百萬(wàn)分之一秒或 10-6?秒)為單位報(bào)告事件的持續(xù)時(shí)間,以毫秒(千分之一秒或 10-3?秒)為單位報(bào)告事件使用的 CPU 時(shí)間。在 SQL Server 2000 中,服務(wù)器以毫秒為單位報(bào)告持續(xù)時(shí)間和 CPU 時(shí)間。在 SQL Server 2005 及更高版本中,SQL Server Profiler圖形用戶界面默認(rèn)以毫秒為單位顯示“持續(xù)時(shí)間”列,但是當(dāng)跟蹤保存到文件或數(shù)據(jù)庫(kù)表中之后,將以微秒為單位在“持續(xù)時(shí)間”列中寫入值。二、事件選擇

對(duì)于不同跟蹤選擇不同的跟蹤事件;通過(guò)勾選“顯示所有跟蹤事件”可以看到所有的跟蹤事件,總共有21個(gè)事件分類。用得最多的兩個(gè)分類就是存儲(chǔ)過(guò)程和TSQL這兩個(gè)分類主要用來(lái)記錄執(zhí)行的存儲(chǔ)過(guò)程和SQL語(yǔ)句,把鼠標(biāo)移動(dòng)到具體的事件上面會(huì)顯示該事件和事件列的具體說(shuō)明,接下來(lái)就分析幾個(gè)常用的事件和常用的事件列。

1.顯示所有跟蹤事件

勾選之后會(huì)將所有的事件都顯示出來(lái)

2.顯示所有列

勾選之后會(huì)將所有的列顯示出來(lái)

3.列篩選

對(duì)列增加一些條件,其實(shí)可以將它理解在TSQL語(yǔ)句的WHERE后面添加條件,對(duì)于整形列直接輸入數(shù)值即可,對(duì)于字符串列就相當(dāng)于like一樣使用不帶引號(hào)的%%模糊匹配方法。通過(guò)勾選“排除不包含值的行”之后跟蹤結(jié)果就會(huì)篩選掉不滿足條件的記錄。

4.列組織

列組織可以理解成TSQL語(yǔ)句里面做GROUP BY操作,可以將相同的條件放在一起去重。

?

事件

1.SQL:Stmt*******

[SQL:StmtStarting]:啟動(dòng)TSQL語(yǔ)句時(shí)記錄

[SQL:StmtCompleted]:完成TSQL語(yǔ)句時(shí)記錄

這兩事件的區(qū)別也同單詞的意思一樣,StmtStarting是記錄事件的開始不關(guān)注這個(gè)事件在接下來(lái)會(huì)做什么,StmtCompleted是記錄事件結(jié)束之后在開始和結(jié)束這個(gè)過(guò)程中做的一些操作比如一些常用的列"Duration","Cpu","Reads","Writes","EndTime"這些列就會(huì)出現(xiàn)在StmtCompleted事件中。所以如果你需要收集的記錄不關(guān)心整個(gè)事件過(guò)程中的操作只需要收集數(shù)量那么可以使用Starting事件比如記錄某個(gè)語(yǔ)句或者存儲(chǔ)過(guò)程執(zhí)行的次數(shù)等。

2.SQL:Batch******

[SQL:BatchStarting]:啟動(dòng)TSQL批處理時(shí)記錄

[SQL:BatchCompleted]:完成TSQL批處理時(shí)記錄

?

這次我把兩個(gè)select語(yǔ)句放在一起來(lái)執(zhí)行,可以從batch事件中可以看到它記錄的整個(gè)批處理的SQL同時(shí)還包括相關(guān)注釋,同時(shí)整個(gè)批處理兩個(gè)TSQL作為一條事件記錄,而stmt事件記錄具體的TSQL語(yǔ)句把兩個(gè)TSQL語(yǔ)句作為兩條記錄來(lái)記錄。同時(shí)還可以發(fā)現(xiàn)兩個(gè)TSQL的Duration相加是小于整個(gè)批處理的duration的,這也是正常的整個(gè)批處理在sql編譯分析執(zhí)行這塊肯定比單個(gè)TSQL需要耗費(fèi)更多的時(shí)間,但是相差也是非常的小。

?

batchcompleted事件多用于引擎優(yōu)化顧問,而stmtcompleted事用于分析單個(gè)TSQL語(yǔ)句。同樣Stored分類里面的starting事件和completed事件和TSQL里面的是一樣的意思。

事件列

列舉常用的事件列

TextData:文本詳細(xì)信息,比如詳細(xì)的執(zhí)行SQL語(yǔ)句等等。

ApplicationName:連接SQLSever的客戶端應(yīng)用程序名稱。

NTUserName:windows用戶名

LoginName:SQLServer登入用戶名。

CPU:事件占用的CPU時(shí)間,在圖形化界面但是是毫秒(千分之一秒或 10-3?秒),在文本文件或者數(shù)據(jù)庫(kù)表中單位是微妙(百萬(wàn)分之一秒或 10-6?秒)。

Reads:執(zhí)行邏輯讀的次數(shù)。

Writes:物理磁盤寫入的次數(shù)。

Duration:事件的持續(xù)時(shí)間,也就是統(tǒng)計(jì)信息里面顯示的占用時(shí)間,在圖形化界面但是是毫秒(千分之一秒或 10-3?秒),在文本文件或者數(shù)據(jù)庫(kù)表中單位是微妙(百萬(wàn)分之一秒或 10-6?秒)

ClientProcessID:調(diào)用SQLServer的應(yīng)用程序進(jìn)程ID。

SPID:SQLServer為連接分配的數(shù)據(jù)庫(kù)進(jìn)程ID,也就是sys.processes里面記錄的進(jìn)程ID。

StartTime:事件的開始時(shí)間。

EndTime:事件的結(jié)束時(shí)間。

DBUserName:客戶端的sqlserver用戶名。

DatabaseID:如果指定了USE database就是指定的數(shù)據(jù)庫(kù)id,否則就是默認(rèn)的數(shù)據(jù)庫(kù)id(也就是master的數(shù)據(jù)庫(kù)id)。所以該列的作用不是很大。

Error:事件的錯(cuò)誤號(hào),通常是sysmessage中存儲(chǔ)的錯(cuò)誤號(hào)。

ObjectName:正在引用的對(duì)象名稱。

三、自帶跟蹤模板

工具自帶了幾個(gè)比較實(shí)用的跟蹤模板,一般的跟蹤都可以直接使用自帶的跟蹤模板解決,同時(shí)自己也可以創(chuàng)建自定義的跟蹤事件和跟蹤屬性保存成模板供以后使用。

SP_Counts:計(jì)算已運(yùn)行的存儲(chǔ)過(guò)程數(shù),并且按存儲(chǔ)過(guò)程的名稱進(jìn)行分組統(tǒng)計(jì),此模板可以分析某時(shí)間段存儲(chǔ)過(guò)程的行為。

Standard:記錄所有存儲(chǔ)過(guò)程和T-SQL語(yǔ)句批處理運(yùn)行的時(shí)間,當(dāng)你想要監(jiān)視常規(guī)數(shù)據(jù)庫(kù)服務(wù)器活動(dòng)時(shí)即可使用該模板,一般的跟蹤需要使用該模板就可以解決,這也是默認(rèn)的模板。

TSQL:記錄客戶端提交給sqlserver的所有T-SQL語(yǔ)句的的內(nèi)容和開始時(shí)間,通常使用該模板用于程序調(diào)試。

TSQL_Duration:記錄客戶端提交給sqlserver的所有T-SQL語(yǔ)句批處理信息以及執(zhí)行這些語(yǔ)句所需的時(shí)間(毫秒),并按時(shí)間進(jìn)行分組,使用該模板可以分析執(zhí)行慢的查詢,此模板的跟蹤記錄可以用于數(shù)據(jù)庫(kù)引擎優(yōu)化顧問分析使用。

TSQL_Grouped:按提交客戶端和登入用戶進(jìn)行分組記錄所有提交給SQLServer的T-SQL批處理語(yǔ)句及其開始時(shí)間,此模板用于分析某個(gè)客戶或者用戶執(zhí)行的查詢。

TSQL_Locks:記錄所有開始和完成的存儲(chǔ)過(guò)程和T-SQL語(yǔ)句,同時(shí)記錄死鎖信息,此模板用于跟蹤死鎖。

TSQL_Replay:記錄有關(guān)已發(fā)出的T-SQL語(yǔ)句的詳細(xì)信息,此模板記錄重播跟蹤所需的信息,此模板可執(zhí)行跌到優(yōu)化,例如基準(zhǔn)測(cè)試。

TSQL_SPs:記錄有關(guān)執(zhí)行的所有存儲(chǔ)過(guò)程的詳細(xì)信息,此模板可以分析存儲(chǔ)過(guò)程的組成步驟。如果你懷疑正在重新編譯存儲(chǔ)過(guò)程,請(qǐng)?zhí)砑覵P:Recomple事件

Tuning:記錄有關(guān)存儲(chǔ)和T-SQL語(yǔ)句批處理的信息以及執(zhí)行這些語(yǔ)句所需的時(shí)間(毫秒),使用此模板生產(chǎn)跟蹤輸出可用于數(shù)據(jù)庫(kù)引擎優(yōu)化顧問工作負(fù)載來(lái)優(yōu)化索引、優(yōu)化性能。此模板和TSQL_Druation相似后者是做了時(shí)間分組。

?

數(shù)據(jù)庫(kù)引擎優(yōu)化顧問


1.如果需要用數(shù)據(jù)庫(kù)引擎優(yōu)化顧問分析跟蹤事件記錄必須捕獲了以下跟蹤事件:

RPC:Completed

SQL:BatchCompleted

SP:StmtCompleted

也可以使用這些跟蹤事件的?Starting?版本。?例如,SQL:BatchStarting。?但是,這些跟蹤事件的?Completed?版本包括?Duration?列,它能使數(shù)據(jù)庫(kù)引擎優(yōu)化顧問更有效地優(yōu)化工作負(fù)荷。?數(shù)據(jù)庫(kù)引擎優(yōu)化顧問不優(yōu)化其他類型的跟蹤事件。

2.包含 LoginName列

數(shù)據(jù)庫(kù)引擎優(yōu)化顧問在優(yōu)化過(guò)程中提交顯示計(jì)劃請(qǐng)求。?當(dāng)包含?LoginName?數(shù)據(jù)列的跟蹤表或跟蹤文件被用作工作負(fù)荷時(shí),數(shù)據(jù)庫(kù)引擎優(yōu)化顧問將模擬?LoginName?中指定的用戶。?如果沒有為此用戶授予 SHOWPLAN 權(quán)限(該權(quán)限使用戶能夠?yàn)楦欀邪恼Z(yǔ)句執(zhí)行和生成顯示計(jì)劃),數(shù)據(jù)庫(kù)引擎優(yōu)化顧問將不會(huì)優(yōu)化這些語(yǔ)句。?

避免為跟蹤的 LoginName 列中指定的每個(gè)用戶授予 SHOWPLAN 權(quán)限

通過(guò)從未優(yōu)化的事件中刪除?LoginName?列來(lái)創(chuàng)建新的工作負(fù)荷,然后只將未優(yōu)化的事件保存到新的跟蹤文件或跟蹤表中。

將不帶?LoginName?列的新工作負(fù)荷重新提交到數(shù)據(jù)庫(kù)引擎優(yōu)化顧問。

數(shù)據(jù)庫(kù)引擎優(yōu)化顧問將優(yōu)化新的工作負(fù)荷,因?yàn)楦欀形粗付ǖ卿浶畔ⅰ?如果某個(gè)語(yǔ)句沒有相應(yīng)的?LoginName,數(shù)據(jù)庫(kù)引擎優(yōu)化顧問將通過(guò)模擬啟動(dòng)優(yōu)化會(huì)話的用戶(sysadmin?固定服務(wù)器角色或?db_owner?固定數(shù)據(jù)庫(kù)角色的成員)來(lái)優(yōu)化該語(yǔ)句。

3.數(shù)據(jù)庫(kù)引擎優(yōu)化顧問不能執(zhí)行下列操作:

建議對(duì)系統(tǒng)表建立索引。

添加或刪除唯一索引或強(qiáng)制 PRIMARY KEY 或 UNIQUE 約束的索引。

優(yōu)化單用戶數(shù)據(jù)庫(kù)。

4.數(shù)據(jù)庫(kù)引擎優(yōu)化顧問具有下列限制:

數(shù)據(jù)庫(kù)引擎優(yōu)化顧問通過(guò)數(shù)據(jù)采樣收集統(tǒng)計(jì)信息。因此,在相同的工作負(fù)荷上重復(fù)運(yùn)行該工具可能生成不同的結(jié)果。

數(shù)據(jù)庫(kù)引擎優(yōu)化顧問不能用于優(yōu)化 Microsoft SQL Server 7.0 或更早版本的數(shù)據(jù)庫(kù)中的索引。

如果為優(yōu)化建議指定的最大磁盤空間超過(guò)了可用空間,數(shù)據(jù)庫(kù)引擎優(yōu)化顧問將使用指定的值。但是,當(dāng)您執(zhí)行建議腳本來(lái)實(shí)施它時(shí),如果未先添加更多磁盤空間,則腳本會(huì)失敗??梢允褂?dta?實(shí)用工具的?-B?選項(xiàng)指定最大磁盤空間,也可以通過(guò)在“高級(jí)優(yōu)化選項(xiàng)”對(duì)話框中輸入值來(lái)指定最大磁盤空間。

為了安全起見,數(shù)據(jù)庫(kù)引擎優(yōu)化顧問不能優(yōu)化駐留在遠(yuǎn)程服務(wù)器上的跟蹤表中的工作負(fù)荷。若要解除此限制,可以選擇以下選項(xiàng)之一:

使用跟蹤文件而不使用跟蹤表。

將跟蹤表復(fù)制到遠(yuǎn)程服務(wù)器。

當(dāng)強(qiáng)制實(shí)施約束時(shí),例如為優(yōu)化建議指定最大磁盤空間時(shí)強(qiáng)制的約束(通過(guò)使用?-B?選項(xiàng)或“高級(jí)優(yōu)化選項(xiàng)”對(duì)話框),數(shù)據(jù)庫(kù)引擎優(yōu)化顧問可能會(huì)被迫刪除某些現(xiàn)有的索引。在此情況下,生成的數(shù)據(jù)庫(kù)引擎優(yōu)化顧問建議可能生成負(fù)的預(yù)期提高值。

指定限制優(yōu)化時(shí)間的約束時(shí)(通過(guò)使用?dta?實(shí)用工具的?-A?選項(xiàng)或通過(guò)選擇“優(yōu)化選項(xiàng)”選項(xiàng)卡上的“限制優(yōu)化時(shí)間”),數(shù)據(jù)庫(kù)引擎優(yōu)化顧問可能超過(guò)該時(shí)間限制,以便針對(duì)到當(dāng)時(shí)為止已處理的工作負(fù)荷,生成精確預(yù)期的提高值和分析報(bào)告。

5.數(shù)據(jù)庫(kù)引擎優(yōu)化顧問可能在下列情況下不提供建議:

正在優(yōu)化的表所包含的數(shù)據(jù)頁(yè)數(shù)少于 10。

建議的索引對(duì)當(dāng)前物理數(shù)據(jù)庫(kù)設(shè)計(jì)的查詢性能預(yù)計(jì)帶來(lái)的提高值不夠。

運(yùn)行數(shù)據(jù)庫(kù)引擎優(yōu)化顧問的用戶不是?db_owner?數(shù)據(jù)庫(kù)角色或?sysadmin?固定服務(wù)器角色的成員。工作負(fù)荷中的查詢?cè)谶\(yùn)行數(shù)據(jù)庫(kù)引擎優(yōu)化顧問的用戶的安全上下文中進(jìn)行分析。該用戶必須是?db_owner?數(shù)據(jù)庫(kù)角色的成員。

6.數(shù)據(jù)庫(kù)引擎優(yōu)化顧問可能在下列情況下不提供分區(qū)建議:

未啟用?xp_msver?擴(kuò)展存儲(chǔ)過(guò)程。此擴(kuò)展存儲(chǔ)過(guò)程用于提取要優(yōu)化的數(shù)據(jù)庫(kù)所在服務(wù)器上的處理器數(shù)目以及可用內(nèi)存。請(qǐng)注意,安裝 SQL Server 后,默認(rèn)情況下,此擴(kuò)展存儲(chǔ)過(guò)程處于打開狀態(tài)。有關(guān)詳細(xì)信息,請(qǐng)參閱了解外圍應(yīng)用配置器和 xp_msver (Transact-SQL)。

7.性能注意事項(xiàng)

在分析過(guò)程中,數(shù)據(jù)庫(kù)引擎優(yōu)化顧問可能占用相當(dāng)多的處理器及內(nèi)存資源。若要避免降低生產(chǎn)服務(wù)器速度,請(qǐng)采用下列策略之一:

在服務(wù)器空閑時(shí)優(yōu)化數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)引擎優(yōu)化顧問可能影響維護(hù)任務(wù)性能。

使用測(cè)試服務(wù)器/生產(chǎn)服務(wù)器功能。有關(guān)詳細(xì)信息,請(qǐng)參閱減輕生產(chǎn)服務(wù)器優(yōu)化負(fù)荷。

指定數(shù)據(jù)庫(kù)引擎優(yōu)化顧問僅分析物理數(shù)據(jù)庫(kù)設(shè)計(jì)結(jié)構(gòu)。數(shù)據(jù)庫(kù)引擎優(yōu)化顧問提供許多選項(xiàng),但是請(qǐng)僅指定所需選項(xiàng)。

注意:由于數(shù)據(jù)庫(kù)引擎優(yōu)化顧問進(jìn)行性能優(yōu)化時(shí)也是將負(fù)載記錄中的語(yǔ)句執(zhí)行一篇查詢分析執(zhí)行計(jì)劃的操作,所以對(duì)服務(wù)器同樣存在壓力。特別是對(duì)于大的負(fù)載分析可能需要分析一個(gè)小時(shí)甚至更長(zhǎng),這樣可能會(huì)持續(xù)對(duì)服務(wù)器造成壓力,所以避免在業(yè)務(wù)高峰期進(jìn)行使用引擎優(yōu)化顧問進(jìn)行負(fù)載分析。

實(shí)例?


接下來(lái)就列舉三個(gè)案例,使用數(shù)據(jù)庫(kù)引擎優(yōu)化顧問來(lái)分析跟蹤記錄優(yōu)化索引的案例、監(jiān)控死鎖的案例、創(chuàng)建自定義跟蹤模板案例。

案例1:優(yōu)化索引

1.創(chuàng)建測(cè)試數(shù)據(jù)

--創(chuàng)建測(cè)試表
CREATE?TABLE?[dbo].[book](
????[id]?[int]?NOT?NULL?PRIMARY?KEY,
????[name]?[varchar](50)?NULL);


--插入10W條測(cè)試數(shù)據(jù)
DECLARE?@id?int
SET?@id=1
WHILE?@id<100000
BEGIN
INSERT?INTO?book?values(@id,CONVERT(varchar(20),@id))

SET?@id=@id+1
END;

2.創(chuàng)建跟蹤

這里使用默認(rèn)的跟蹤模板“tuning”

1.創(chuàng)建好跟蹤后點(diǎn)擊運(yùn)行即可,事件選擇這里保持默認(rèn)

2.執(zhí)行SQL

SELECT?*?FROM?book?WHERE?name='10001';

由于name字段沒有建索引所以該查詢執(zhí)行計(jì)劃分析過(guò)后會(huì)返回創(chuàng)建name字段的索引,通過(guò)引擎優(yōu)化顧問分析同樣如此

3.停止跟蹤

在使用數(shù)據(jù)庫(kù)引擎優(yōu)化顧問分析負(fù)載跟蹤之前必須先停止跟蹤。

4.打開數(shù)據(jù)庫(kù)引擎優(yōu)化顧問

可以直接在profile的工具欄選擇打開,“文件”選擇剛才的跟蹤文件,“負(fù)載數(shù)據(jù)庫(kù)”選擇需要進(jìn)行優(yōu)化的數(shù)據(jù)庫(kù),“選擇要優(yōu)化的數(shù)據(jù)庫(kù)和表”也就需要優(yōu)化的數(shù)據(jù)庫(kù)的相關(guān)表。優(yōu)化選項(xiàng)沒有特別的需求選擇默認(rèn)即可,然后點(diǎn)擊“開始分析”。

引擎優(yōu)化顧問會(huì)自動(dòng)生成創(chuàng)建索引的腳步,同時(shí)還給出了創(chuàng)建該索引之后預(yù)計(jì)性能可以提供的百分比,如果同時(shí)存在很多表的索引建議可以勾選需要保存的建議保存成sql文件在“開始分析”欄旁邊有一個(gè)保存建議的按鈕可以將建議保存成sql文件。

建議:

1.數(shù)據(jù)庫(kù)引擎優(yōu)化顧問給出的建議不是每一個(gè)都是對(duì)的,自己對(duì)比該SQL的執(zhí)行頻率來(lái)判斷是否需要?jiǎng)?chuàng)建該索引,比如我當(dāng)前這個(gè)SQL如果我這個(gè)SQL只執(zhí)行了一次后面就不會(huì)再執(zhí)行了那么這個(gè)索引就沒必要?jiǎng)?chuàng)建了。

2.修改引擎優(yōu)化顧問給出的索引名,數(shù)據(jù)庫(kù)引擎優(yōu)化顧問給出的創(chuàng)建索引的索引名不夠直觀,建議自己手動(dòng)更改,比如改成“ix_book_name”,“索引標(biāo)示_表名_字段描述”的規(guī)則。

3.用來(lái)分析的文件不要太大否則可能會(huì)分析不完成,不要在業(yè)務(wù)高峰期進(jìn)行分析。

案例2:監(jiān)控死鎖

1.創(chuàng)建跟蹤

?

模板選擇自帶的“TSQL_Locks”模板,運(yùn)行跟蹤。

2.執(zhí)行SQL

打開兩個(gè)會(huì)話窗口分表執(zhí)行如下SQL,先在會(huì)話1執(zhí)行然后在10S內(nèi)在會(huì)話2中執(zhí)行,兩個(gè)會(huì)話擁有各自的排他鎖同時(shí)又去申請(qǐng)對(duì)方擁有的排他鎖造成死鎖。

會(huì)話1執(zhí)行:當(dāng)前會(huì)話1是62

BEGIN?TRANSACTION
UPDATE?book?
SET?name='a'
WHERE?ID=10

--延時(shí)10s執(zhí)行
waitfor?delay?'0:0:10'

UPDATE?book?
SET?name='a'
WHERE?ID=100

會(huì)話2執(zhí)行:當(dāng)前會(huì)話2是

BEGIN?TRANSACTION
UPDATE?book?
SET?name='b'
WHERE?ID=100

--延時(shí)20執(zhí)行
waitfor?delay?'0:0:20'

UPDATE?book?
SET?name='b'
WHERE?ID=10

msms客戶端返回的錯(cuò)誤消息顯示當(dāng)前62會(huì)話作為死鎖的犧牲品。

3.跟蹤分析死鎖

?死鎖跟蹤事件使用圖形和直觀的返回了兩個(gè)會(huì)話的死鎖,其中62會(huì)話用了一個(gè)×表示當(dāng)前的會(huì)話是死鎖的犧牲品。

案例三:創(chuàng)建自定義跟蹤模板

?標(biāo)準(zhǔn)模板就是一個(gè)比較好的參考模板,比如我們對(duì)執(zhí)行語(yǔ)句進(jìn)行監(jiān)控就可以參考標(biāo)準(zhǔn)模板在其基礎(chǔ)上修改保存成自己的模板。

1.創(chuàng)建TSQL語(yǔ)句跟蹤

2.創(chuàng)建跟蹤模板

停止當(dāng)前的TSQL跟蹤,選擇“文件”-“另存為跟蹤模板”就可以保存成自己的跟蹤模板。

3.列篩選

?

當(dāng)前是篩選跟蹤的TSQL語(yǔ)句中包含book,這里的列篩選這執(zhí)行 where like 的語(yǔ)法類似。

整形列的話就不需要帶模糊條件:

注意:如果要取消列篩選記得把剛才的篩選條件刪除同時(shí)把“排除不包含值的行” 的勾選也去除,記得兩者都要去掉否則跟蹤還是包含篩選的跟蹤。

4.列組織

列組織其實(shí)就是按某列進(jìn)行分組顯示跟蹤,類似select查詢里面的group by操作。比如我當(dāng)前按持續(xù)時(shí)間進(jìn)行分組跟蹤。

通過(guò)對(duì)持續(xù)時(shí)間進(jìn)行分組,相同的持續(xù)時(shí)間會(huì)放在一個(gè)分組里。

總結(jié)

?由于篇幅有限列舉了一些簡(jiǎn)單常用的操作,其它的分類監(jiān)控的方法類似有興趣可以多去研究,profile是非常實(shí)用且界面化很好的監(jiān)控工具這也是SQLServer獨(dú)特的條件,應(yīng)該熟練運(yùn)用。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉