www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 芯聞號(hào) > 充電吧
[導(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ù)庫引擎優(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)可將事件分組成更小、更容易管理的文件。此外,限制文件大小使得無人參與的跟蹤運(yùn)行起來更加安全,因?yàn)楦檿?huì)在達(dá)到最大文件大小后停止??梢詾橥ㄟ^ Transact-SQL 存儲(chǔ)過程或使用 SQL Server Profiler創(chuàng)建的跟蹤設(shè)置最大文件大小。

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

注意:最大文件的大小建議不要設(shè)的太大,特別是需要用于數(shù)據(jù)庫引擎優(yōu)化顧問使用的文件,太大的跟蹤文件需要很長的分析的時(shí)間而且由于數(shù)據(jù)庫引擎優(yōu)化顧問也是把收集的負(fù)載文件執(zhí)行一遍有時(shí)候可能會(huì)導(dǎo)致負(fù)載過大分析失敗,同時(shí)對(duì)服務(wù)器的壓力持續(xù)的時(shí)間過長對(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ù)使得無人參與的跟蹤運(yùn)行起來更加方便。例如,如果需要啟動(dòng)一個(gè)將跟蹤數(shù)據(jù)保存到表的跟蹤,同時(shí)希望在該表變得過大時(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ù)器以微秒(百萬分之一秒或 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ù)庫表中之后,將以微秒為單位在“持續(xù)時(shí)間”列中寫入值。二、事件選擇

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

1.顯示所有跟蹤事件

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

2.顯示所有列

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

3.列篩選

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

4.列組織

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

?

事件

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

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

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

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

2.SQL:Batch******

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

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

?

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

?

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

事件列

列舉常用的事件列

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

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

NTUserName:windows用戶名

LoginName:SQLServer登入用戶名。

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

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

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

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

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

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

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

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

DBUserName:客戶端的sqlserver用戶名。

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

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

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

三、自帶跟蹤模板

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

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

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

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

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

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

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

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

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

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

?

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


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

RPC:Completed

SQL:BatchCompleted

SP:StmtCompleted

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

2.包含 LoginName列

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

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

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

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

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

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

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

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

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

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

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

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

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

為了安全起見,數(shù)據(jù)庫引擎優(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)制的約束(通過使用?-B?選項(xiàng)或“高級(jí)優(yōu)化選項(xiàng)”對(duì)話框),數(shù)據(jù)庫引擎優(yōu)化顧問可能會(huì)被迫刪除某些現(xiàn)有的索引。在此情況下,生成的數(shù)據(jù)庫引擎優(yōu)化顧問建議可能生成負(fù)的預(yù)期提高值。

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

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

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

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

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

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

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

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

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

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

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

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

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

實(shí)例?


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

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

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

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


--插入10W條測試數(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ì)劃分析過后會(huì)返回創(chuàng)建name字段的索引,通過引擎優(yōu)化顧問分析同樣如此

3.停止跟蹤

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

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

可以直接在profile的工具欄選擇打開,“文件”選擇剛才的跟蹤文件,“負(fù)載數(shù)據(jù)庫”選擇需要進(jìn)行優(yōu)化的數(shù)據(jù)庫,“選擇要優(yōu)化的數(shù)據(jù)庫和表”也就需要優(yōu)化的數(shù)據(jù)庫的相關(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ù)庫引擎優(yōu)化顧問給出的建議不是每一個(gè)都是對(duì)的,自己對(duì)比該SQL的執(zhí)行頻率來判斷是否需要?jiǎng)?chuàng)建該索引,比如我當(dāng)前這個(gè)SQL如果我這個(gè)SQL只執(zhí)行了一次后面就不會(huì)再執(zhí)行了那么這個(gè)索引就沒必要?jiǎng)?chuàng)建了。

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

3.用來分析的文件不要太大否則可能會(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í)行語句進(jìn)行監(jiān)控就可以參考標(biāo)準(zhǔn)模板在其基礎(chǔ)上修改保存成自己的模板。

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

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

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

3.列篩選

?

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

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

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

4.列組織

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

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

總結(jié)

?由于篇幅有限列舉了一些簡單常用的操作,其它的分類監(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)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉