濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > 詳解SQL Server 2008工具SQL Server Profiler

詳解SQL Server 2008工具SQL Server Profiler

熱門標(biāo)簽:南京外呼系統(tǒng)租用 400電話辦理2273649Z空間 智能語音外呼系統(tǒng)打電話 400電話怎么申請收費(fèi)標(biāo)準(zhǔn) 寧夏外呼系統(tǒng)方案 高德地圖標(biāo)注生成 濟(jì)南電銷外呼防封卡怎么樣 電銷外呼系統(tǒng)違規(guī) 怎樣在地圖標(biāo)注自己的信息

一、SQL Profiler工具簡介

SQL Profiler是一個(gè)圖形界面和一組系統(tǒng)存儲(chǔ)過程,其作用如下:

1.圖形化監(jiān)視SQL Server查詢;

2.在后臺(tái)收集查詢信息;

3.分析性能;

4.診斷像死鎖之類的問題;

5.調(diào)試T-SQL語句;

6.模擬重放SQL Server活動(dòng);

也可以使用SQL Profiler捕捉在SQL Server實(shí)例上執(zhí)行的活動(dòng)。這樣的活動(dòng)被稱為Profiler跟蹤。

  1、Profiler跟蹤

  從開始=》所有程序=》Microsoft SQL Server 2008=》性能工具打開Profiler工具,也可以打開SQL Server Management Studio=》工具=》SQL Server Profiler。

  然后選擇文件=》新建=》跟蹤打開一個(gè)連接窗口,選擇將要跟蹤的服務(wù)器實(shí)例然后連接。打開如下“跟蹤屬性”對話框。

  

  如果有許多跟蹤,可以提供一個(gè)跟蹤名稱來幫助在以后進(jìn)行分類。不同的跟蹤模板可幫助建立用于不同目的的跟蹤。

  打開跟蹤屬性窗口后,單擊“事件選擇”選項(xiàng)卡,為跟蹤提供更詳細(xì)的定義。

  

  2、事件

  一個(gè)事件表現(xiàn)SQL Server中執(zhí)行的各種活動(dòng)。這些活動(dòng)可以簡單地分類為事件類,游標(biāo)事件,鎖事件,存儲(chǔ)過程事件和T-SQL事件是常見的事件類。

  對于性能分析,主要對SQL Server上執(zhí)行的各種活動(dòng)的資源壓力水平的事件感興趣。資源壓力主要包含如下內(nèi)容:

SQL活動(dòng)涉及哪一類的CPU使用?使用了多少內(nèi)存?涉及多少I/0操作?SQL活動(dòng)執(zhí)行了多長時(shí)間?特定的查詢執(zhí)行的頻率有多高?查詢面對哪類錯(cuò)誤和警告?

  下面給出跟蹤查詢結(jié)束的事件:

事件類 事件 說明
Stored Procedures RPC:Completed RPC完成事件
  SP:Completed 存儲(chǔ)過程完成事件
  SP:StmtCompleted 在存儲(chǔ)過程中一條SQL語句完成事件
T-SQL SQL:BatchCompleted T-SQL批完成事件
  SQL:StmtCompleted 一條T-SQL語句完成事件

  RPC事件表示存儲(chǔ)過程使用遠(yuǎn)程過程調(diào)用(RPC)機(jī)制通過OLEDB命令執(zhí)行。如果一個(gè)數(shù)據(jù)庫應(yīng)用程序使用T-SQL EXECUTE語句執(zhí)行一個(gè)存儲(chǔ)過程,那么存儲(chǔ)過程將被轉(zhuǎn)化為一個(gè)SQL批而不是一個(gè)RPC。RPC請求通常比EXECUTE請求快,因?yàn)樗@過了SQL Server中的許多語句解析和參數(shù)處理。

  T-SQL由一條或多條T-SQL語句組成。語句或T-SQL語句在存儲(chǔ)過程中也是單獨(dú)和離散的。用SP:StmtCompleted或SQL:StmtCompleted事件捕捉單獨(dú)的語句可能是代價(jià)很高的操作,這取決于單獨(dú)語句的數(shù)量。假設(shè)系統(tǒng)中的每個(gè)存儲(chǔ)過程包含且只有一條T-SQL語句。在這種情況下,完成的語句集合相當(dāng)小?,F(xiàn)在假定過程中有多條語句,而且這些過程中有些使用其他語句調(diào)用其他過程。收集所有這些額外的數(shù)據(jù)現(xiàn)在變成系統(tǒng)上非常厲害的負(fù)載。在生產(chǎn)機(jī)上一定要慎用。

  現(xiàn)在回到那個(gè)事件選擇面板,只有已經(jīng)被選擇的事件才會(huì)被顯示。如果想顯示所有可供選擇的事件,則只需選中“顯示所有事件”單選框,要添加一個(gè)跟蹤事件,在Event列中查找一個(gè)事件類下的事件,并單擊其左邊的檢查框;要?jiǎng)h除不需要的事件,取消選中的事件選擇框。

  光分類就有好多的說:

  

  下面給出其他一些與性能診斷有關(guān)的事件:

事件類 事件 說明
Security Audit(安全審計(jì)) Audit Login(登錄審計(jì)) 記錄用戶連接到SQL Server或斷開連接時(shí)數(shù)據(jù)庫的連接
Audit Logout(注銷審計(jì))
Sessions(會(huì)話) ExistingConnection(現(xiàn)有連接) 表示所有在跟蹤開始之間連接到SQL Server的用戶
Cursors(游標(biāo)) CursorImplicitConversion(游標(biāo)隱含轉(zhuǎn)換) 表明創(chuàng)建的游標(biāo)類型與所請求的類型個(gè)不同
Errors and Warnings(錯(cuò)誤和警告) Attention(注意) 表示由于客戶端撤銷查詢或者數(shù)據(jù)庫連接破壞引起請求中斷
Exception(異常) 表明SQL Server發(fā)生了異常
Execution Warning(執(zhí)行警告) 表明在查詢或存儲(chǔ)過程執(zhí)行期間出現(xiàn)了警告
Hash Warning(哈希警告) 表明hash操作發(fā)生了錯(cuò)誤
Missing Column Statistics(列統(tǒng)計(jì)丟失) 表明優(yōu)化器要求的確定處理策略用的類統(tǒng)計(jì)丟失
Missing Join Predicate(連接斷言丟失) 表明查詢在兩個(gè)表沒有連接斷言情況下執(zhí)行
Sort Warning(排序警告) 表明像SELECT這樣的查詢中執(zhí)行排序操作沒有合適的內(nèi)存
Locks(鎖) Lock:Deadlock(死鎖) 標(biāo)志著死鎖的出現(xiàn)
Lock:Deadlock Chain(死鎖鏈) 顯示產(chǎn)生死鎖的查詢鏈條
lock:Timeout(鎖超時(shí)) 表示鎖已經(jīng)超過其超時(shí)參數(shù),該參數(shù)由SETLOCK_TIMEOUT timeout_perious(ms)命令設(shè)置
Stored Procedures(存儲(chǔ)過程)    SP:Recompile(重編譯) 表明用于一個(gè)存儲(chǔ)過程的執(zhí)行計(jì)劃必須重編譯,原因是執(zhí)行計(jì)劃不存在,強(qiáng)制的重編譯,或者現(xiàn)有的執(zhí)行計(jì)劃不能重用

 SP:Starting(開始)

 SP:StmtStarting(語句開始)

分別表示一個(gè)SP:StmtStarting存儲(chǔ)過程和存儲(chǔ)過程中的一條SQL語句的開始。他們對于識(shí)別開始單因?yàn)橐粋€(gè)操作導(dǎo)致Attention事件未能結(jié)束的查詢很有用 
 Transactions(事物) SQLTransaction(SQL事務(wù))  提供數(shù)據(jù)庫事務(wù)的信息,包括事務(wù)開始/結(jié)束的時(shí)間、事務(wù)持續(xù)事件等信息 

  3、事件列

   事件以不同的特性(被稱為數(shù)據(jù)列)來表現(xiàn)。數(shù)據(jù)列表現(xiàn)一個(gè)事件的不通特性,如事件的類、用于該事件的SQL語句、事件的資源開銷以及事件來源。

數(shù)據(jù)列 說明
EventClass(事件類) 事件類型,如SQL:StatementCompleted
TextData 事件所用的SQL語句,如SELECT * FROM Person
CPU 事件的CPU開銷(以ms表示),如對一個(gè)SELECT語句,CPU=100表示該語句執(zhí)行100ms
Reads 為一個(gè)事件所執(zhí)行的邏輯讀操作數(shù)量。例如對一個(gè)SELECT語句,Reads=800表示該語句需要800次邏輯讀操作
Writes 為一個(gè)事件所執(zhí)行的邏輯寫操作數(shù)量
Duration 事件的執(zhí)行時(shí)間(ms)
SPID 用于該事件的SQL Server進(jìn)程標(biāo)識(shí)符
StartTime 事件開始的時(shí)間

   以上是常用的數(shù)據(jù)列,另外還有一些不太常用的數(shù)據(jù)列:

  BinaryData(二進(jìn)制數(shù)據(jù))  IntegerData(整數(shù)數(shù)據(jù))  EventSubClass(事件子類)  DatabaseID(數(shù)據(jù)庫標(biāo)識(shí)符)  ObjectID(對象標(biāo)識(shí)符)  IndexID(索引標(biāo)識(shí)符)  TransactionID(事務(wù)標(biāo)識(shí)符)  Error(錯(cuò)誤)  EndTime(結(jié)束時(shí)間)

  列數(shù)據(jù)可以重新安排以符合你自己所喜歡的風(fēng)格,要控制列數(shù)據(jù)的安放,單擊組織列按鈕,將打開如下對話框??梢詥螕鬠p和Down按鈕修改列的位置,將列移入Groups意味著它將成為一個(gè)合計(jì)列。

   

  4、列篩選器

  除了為一個(gè)Profiler跟蹤定義事件和數(shù)據(jù)列之外,還可以定義各種過濾條件。這些條件幫助縮小跟蹤的輸出,這往往是一個(gè)好主意。下面給出常用過濾條件列表。

事件 過濾條件實(shí)例 用處
ApplicationName(應(yīng)用程序名稱) Not like:SQL Profiler 過濾Profiler生成的事件。這是默認(rèn)的行為
DatabaseID(數(shù)據(jù)庫標(biāo)識(shí)符) Equals:ID of the database to monitor> 過濾特定數(shù)據(jù)庫生成的事件。數(shù)據(jù)庫ID:SELECT DB_IC('Northwind')
Duration(持續(xù)時(shí)間) Greater than or equal:2   對于性能分析,經(jīng)常會(huì)為一個(gè)大的工作負(fù)載捕捉跟蹤,在大的跟蹤中,許多事件日志具有比所感興趣更小的持續(xù)周期(Duration)。過濾這個(gè)事件日志,因?yàn)閹缀鯖]有可用于優(yōu)化這些SQL活動(dòng)的余地
Reads(讀操作數(shù)) Greater than or equal"2 過濾讀操作較小的事件
SPID

Equals:Database users to monitor>

定位由特定的數(shù)據(jù)庫用戶發(fā)送的查詢

   下面給出設(shè)置過濾列的方式:

  

   5、跟蹤模板

  SQL Server Profiler可以用自定義事件、數(shù)據(jù)列和過濾器創(chuàng)建一個(gè)跟蹤模板,然后定義一個(gè)新的跟蹤,然后重用跟蹤個(gè)模板來捕捉一個(gè)跟蹤。定義新跟蹤模板的過程類似于定義新跟蹤,步驟如下:

創(chuàng)建一個(gè)新的跟蹤。和前面一樣定義事件,數(shù)據(jù)列和過濾器。從文件=》另存為菜單將跟蹤定義保存為跟蹤模板。

  SQL Server Profiler將自動(dòng)將新的模板加入到其模板列表中。

  新建模板:

  

  保存模板:

  

  查看:

  

  6、跟蹤數(shù)據(jù)

  定義了跟蹤以后,單擊運(yùn)行按鈕將開始捕捉事件并將其顯示在屏幕上,可以看到一系列滾動(dòng)事件,可以在我們稱之為SQL TV的屏幕上看到系統(tǒng)的運(yùn)行,可以像DVD播放機(jī)一樣或多或少地控制跟蹤,可以使用工具欄上的按鈕暫停、開始和停止跟蹤,甚至可以在工作室暫停跟蹤并修改它。

  一旦完成了SQL Server活動(dòng)的捕捉,就可以將跟蹤輸出保存為一個(gè)跟蹤文件或一個(gè)跟蹤表。保存到跟蹤文件的跟蹤輸出是一個(gè)原生的格式,可以由Profiler打開以分析SQL查詢。將跟蹤的輸出保存為一個(gè)表,也可以使Profiler在跟蹤表上用SELECT語句來分析其中的SQL查詢。

  具體的操作為 文件 =》 另存為 =》 跟蹤表。選擇你希望存入的的數(shù)據(jù)庫和表,然后你就可以像普通表一樣執(zhí)行各種SQL查詢。

二、跟蹤的自動(dòng)化

  Profiler GUI簡化了Profiler跟蹤的收集。不幸的是,這種簡易性有其代價(jià)。Profiler工具捕捉的事件進(jìn)入內(nèi)存中的緩沖以便通過網(wǎng)絡(luò)反饋給GUI。GUI依賴網(wǎng)絡(luò),網(wǎng)絡(luò)流量可能降低系統(tǒng)的速度并導(dǎo)致緩沖被填滿。這將在較小的程度上影響服務(wù)器的性能。進(jìn)一步地,當(dāng)緩沖被填滿,服務(wù)器將開始丟棄事件以避免嚴(yán)重地影響服務(wù)器性能。

  1、使用GUI捕捉跟蹤

  可以以兩種方法兩創(chuàng)建一個(gè)腳本化跟蹤-手工或者使用GUI。在輕松地滿足腳本的所有要求之間,最簡易的方法就是使用Profiler工具的GUI,需要如下步驟:

定義一個(gè)跟蹤;單擊文件=》導(dǎo)出=》腳本跟蹤定義;必須選擇目標(biāo)服務(wù)器類型, SQL Server2005/2008;未文件命名,并保存它;

  這些不走將生成所有步驟跟蹤并將其輸出到一個(gè)文件所需的所有腳本命令。

  使用Management Studio手工啟動(dòng)新的跟蹤:

打開文件;使用系統(tǒng)的相關(guān)名稱和路徑替換InsertFileNameHere;執(zhí)行腳本,它將返回帶有TraceId的單列結(jié)果集;

  可以通過SQL Agent自動(dòng)化這個(gè)腳本的執(zhí)行,甚至可以使用sqlcmd.exe使用程序從命令行運(yùn)行這個(gè)腳本。不管使用哪種方法,這個(gè)腳本將啟動(dòng)跟蹤。如果沒有定義跟蹤停止時(shí)間,就必須使用TraceId手工停止跟蹤。

  2、使用存儲(chǔ)過程捕捉跟蹤

  查看上一節(jié)中定義的腳本,會(huì)看到以特定順序條用的一系列命令:

sp_trace_create:創(chuàng)建一個(gè)跟蹤定義;sp_trace_setevent:添加事件和事件列到跟蹤中;sp_trace_setfilter:將過濾器應(yīng)用到跟蹤;

  一旦定義了SQL跟蹤持續(xù)到跟蹤被停止。因?yàn)镾QL跟蹤作為一個(gè)后端進(jìn)程持續(xù)運(yùn)行,Managerment Studio會(huì)話不需要保持打開??梢允褂肧QL Server內(nèi)建函數(shù)fn_trace_getinfo確定正在運(yùn)行的跟蹤,查詢?nèi)缦拢?/p>

復(fù)制代碼 代碼如下:

SELECT * FROM ::fn_trace_getinfo(default);

  輸出圖:

  

  fn_trace_getinfo函數(shù)的輸出中,不同的traceid的數(shù)量表示SQL Server上活動(dòng)跟蹤的數(shù)量。

第三列(value)表示跟蹤是否正在運(yùn)行(value=1)或者停止(value=0)??梢酝ㄟ^執(zhí)行存儲(chǔ)過程sp_trace_setstatus停止特定的跟蹤,如traceid=1,如下所示:

復(fù)制代碼 代碼如下:

EXEC sp_trace_setstatus 1,0;

在跟蹤停止之后,它的定義必須執(zhí)行sp_trace_setstatus關(guān)閉并且從服務(wù)器中刪除,如下所示:

復(fù)制代碼 代碼如下:

EXEC sp_trace_setstatus 1,2;

  為了驗(yàn)證跟蹤成功地停止,重新執(zhí)行fn_trace_getinfo函數(shù),并確定該函數(shù)的輸出不包含該traceid。

  這種技術(shù)所創(chuàng)建的跟蹤文件的格式與Profiler創(chuàng)建的跟蹤文件相同。因此,這種跟蹤文件可以與Profiler創(chuàng)建的文件以相同的方式進(jìn)行分析。

  使用前一小節(jié)所概述的存儲(chǔ)過程捕捉SQL跟蹤,避免了與Profiler GUI相關(guān)的開銷。而且還比Profiler工具提供了管理SQL跟蹤計(jì)劃的更大靈活性。

三、結(jié)合跟蹤和性能監(jiān)視器輸出

  如果自動(dòng)化了性能監(jiān)視器捕捉到文件,又自動(dòng)化了Profiler數(shù)據(jù)捕捉到一個(gè)文件。它們覆蓋相同的時(shí)間段,那么就可以在SQL Profiler GUI中一起使用它們。確定跟蹤有StartTime和EndTime數(shù)據(jù)字段,按照以下步驟進(jìn)行:

打開跟蹤文件(當(dāng)然前提是你曾經(jīng) 另存為=》跟蹤文件);單擊 文件=》 導(dǎo)入性能數(shù)據(jù);選擇導(dǎo)入的性能監(jiān)視器文件;

  執(zhí)行上面的操作將打開如下所示對話框,這里允許選擇包含性能監(jiān)視器計(jì)數(shù)器。

 

  選擇了想要包含的計(jì)數(shù)器之后,單擊OK按鈕將一起打開Profiler和性能監(jiān)視器數(shù)據(jù)?,F(xiàn)在,可以開始一起使用跟蹤數(shù)據(jù)和性能監(jiān)視器數(shù)據(jù)。如果在頂部窗口選擇一個(gè)時(shí)間,它將在性能 監(jiān)視器中放置一條紅線,顯示數(shù)據(jù)中事件發(fā)生的時(shí)間。相反,可以單擊性能監(jiān)視器數(shù)據(jù),表示那段 時(shí)間的事件將被選中。這些性能工作得很好,將可以在調(diào)整過程中定時(shí)使用它們以確認(rèn)瓶頸和壓力 點(diǎn),并確定導(dǎo)致這些壓力的特定查詢。

四、SQL Profiler使用要點(diǎn)

  SQL Profiler使用建議如下:

限制事件和數(shù)據(jù)列的數(shù)量;拋棄用于性能分析的啟動(dòng)事件;限制跟蹤的輸出大?。槐苊饴?lián)機(jī)數(shù)據(jù)列排序;遠(yuǎn)程運(yùn)行Proflier;

  1、限制事件和數(shù)據(jù)列

  在跟蹤SQL查詢時(shí),可以通過過濾事件和數(shù)據(jù)列來決定哪些SQL活動(dòng)應(yīng)該被捕捉。選擇更多的事件造成了大量的跟蹤開銷。數(shù)據(jù)列不會(huì)增加太多的開銷,因?yàn)樗鼈冎皇且粋€(gè)事件類的特性。因此,知道每個(gè)所希望跟蹤事件的原因,并根據(jù)必要性來選擇事件是很重要的。

  最小化捕捉的事件數(shù)量避免SQL Server浪費(fèi)寶貴的資源帶寬去生成所有的事件。捕捉像鎖和執(zhí)行計(jì)劃這樣的事件時(shí)應(yīng)該小心進(jìn)行,因?yàn)檫@些事件會(huì)使跟蹤輸出變得非常大并降低SQL Server的性能。

  過濾分兩個(gè)階段:預(yù)過濾由SQL Server執(zhí)行,后過濾由用戶執(zhí)行。預(yù)過濾是捕捉SQL Server活動(dòng)的聯(lián)機(jī)階段,預(yù)過濾提供多種溢出:

降低了SQL Server的性能影響,因?yàn)樯捎邢迶?shù)量的時(shí)間;降低跟蹤輸出大?。缓喕筮^濾操作,首先因?yàn)橐蹲降氖录倭耍?/p>

  預(yù)過濾的唯一缺點(diǎn)是,可能丟失一些徹底分析中需要的重要信息。

  2、丟棄性能分析所用的啟動(dòng)事件

  所用于性能分析的信息圍繞一個(gè)查詢的資源開銷。想SP:StmtStarting這樣的啟動(dòng)事件不提供這種信息,因?yàn)橹挥性谑录瓿芍?,才能?jì)算I/O量、CPU負(fù)載和查詢的持續(xù)時(shí)間。所以,在跟蹤運(yùn)行緩慢的查詢以進(jìn)行性能分析時(shí),不需要捕捉啟動(dòng)事件。這種信息由對應(yīng)的完成事件來提供。

  什么情況下適合捕捉啟動(dòng)事件呢?應(yīng)該在預(yù)期某些SQL查詢因?yàn)殄e(cuò)誤而不能結(jié)束執(zhí)行,或者頻繁發(fā)現(xiàn)Attention事件的時(shí)候捕捉啟動(dòng)事件。Attention事件一般表示用戶中途撤銷了查詢或者查詢超時(shí),可能因?yàn)椴樵冞\(yùn)行了太長時(shí)間。

  3、限制跟蹤輸出大小

  除了預(yù)過濾事件和數(shù)據(jù)列,其他過濾條件也會(huì)限制跟蹤輸出的大小。同樣,限制大小可能丟失所關(guān)注的總體系統(tǒng)狀態(tài)中感興趣的事件。但是,如果關(guān)注于開銷較大的查詢,過濾器是有幫助的。

  通過過濾器,能夠篩選執(zhí)行事件》=2或邏輯讀數(shù)量》=100的查詢,因?yàn)橄奶偷牟樵兓旧喜恍枰獌?yōu)化。

  4、避免在線數(shù)據(jù)列排序

  在性能分析期間,一般在不同的數(shù)據(jù)列(如Duration、CPU、Reads)上排序以確定相應(yīng)數(shù)字最大的查詢。如果脫機(jī)排序,就能降低在與SQL Server交互時(shí)必須進(jìn)行的Profiler活動(dòng)。排序捕捉到的SQL跟蹤輸出的方法如下:

捕捉跟蹤,不做任何排序或分組;另存為跟蹤輸出到一個(gè)跟蹤文件;打開跟蹤文件并按照需要在特定的數(shù)據(jù)列上排序或分組跟蹤文件輸出;

  5、遠(yuǎn)程運(yùn)行Profiler

  直接在生產(chǎn)服務(wù)器上運(yùn)行測試工具一般不是一個(gè)好辦法。Profiler有一個(gè)大型的用戶界面,因此,在其他機(jī)器上運(yùn)行它更好。與系統(tǒng)監(jiān)視器相似,Profiler不應(yīng)該通過終端服務(wù)會(huì)話來運(yùn)行,因?yàn)檫@樣工具的主要部分仍然在服務(wù)器上運(yùn)行。在直接將跟蹤輸出收集到一個(gè)文件時(shí),保存在Profiler運(yùn)行的本地文件上。這仍然是比通過系統(tǒng)存儲(chǔ)過程將Profiler作為服務(wù)器端跟蹤來運(yùn)行更加資源密集的操作。使用系統(tǒng)存儲(chǔ)過程仍然是最好的選擇。

  6、限制使用某些事件

  某些事件的開銷比其他的事件大。由于生成的查詢的特性,語句完成事件的開銷可能非常大。需要謹(jǐn)慎地使用,特別是在已經(jīng)遇到壓力的系統(tǒng)上,必須謹(jǐn)慎使用的事件有:Showplan XML事件,Performance:Showplan XML、Performance:Showplan XML for Query Compile和Performance:Showplan XML sTATISTICS Prifile。雖然這些事件可能有用,但是不要在生產(chǎn)機(jī)器上使用它們。

五、沒有Profiler的情況下查詢性能度量

  建立一個(gè)跟蹤能收集許多數(shù)據(jù)供以后使用,但是這種收集可能代價(jià)很大,必須等待結(jié)果。

  如果要立即捕捉系統(tǒng)的性能度量,特別是關(guān)于查詢性能的度量,那么動(dòng)態(tài)管理視圖sys.dm_exec_query_stats正式所需要的。如果還需要查詢運(yùn)行及其單獨(dú)開銷的歷史記錄,那么跟蹤仍然是更好的工具。但是,如果只需要知道這時(shí)候運(yùn)行時(shí)間最長的查詢或者最多的物理讀操作,則可以從sys.dm_exec_query_stats得到這些信息。

  因?yàn)閟ys.dm_exec_query_stats只是一個(gè)視圖,可以簡單地對其進(jìn)行查詢并獲得服務(wù)器上查詢計(jì)劃統(tǒng)計(jì)的信息。

描述
Plan_handle 引用執(zhí)行計(jì)劃的指針
Creation_time 計(jì)劃創(chuàng)建的時(shí)間
Last_execution time 查詢最后一次使用的計(jì)劃時(shí)間
Execution_count 計(jì)劃已經(jīng)使用的次數(shù)
Total_worker_time 從創(chuàng)建起計(jì)劃使用的CPU時(shí)間
Total_logical_reads 從創(chuàng)建器計(jì)劃使用的讀操作數(shù)量
Total_logical_writes 從創(chuàng)建器計(jì)劃使用的寫操作數(shù)量
Query_hash 可用于識(shí)別有相似邏輯的查詢的一個(gè)二進(jìn)制hash
Query_plan_hash 可用于識(shí)別有相似邏輯的計(jì)劃的一個(gè)二jinzhihash

  為了過濾從sys.dm_exec_query_stats返回的信息,需要將其連接到其他動(dòng)態(tài)管理函數(shù)上,如sys.dm_exec_sql_text可以顯示與計(jì)劃相關(guān)的查詢文本,sys.dm_query_plan顯示用于查詢的執(zhí)行計(jì)劃。一旦連接到其他DMF,可以限制希望過濾得數(shù)據(jù)庫或過程。

標(biāo)簽:平頂山 長白山 惠州 茂名 仙桃 潛江 貴港 唐山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解SQL Server 2008工具SQL Server Profiler》,本文關(guān)鍵詞  詳解,SQL,Server,2008,工具,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解SQL Server 2008工具SQL Server Profiler》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解SQL Server 2008工具SQL Server Profiler的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    西充县| 玉树县| 江油市| 临漳县| 深泽县| 唐海县| 凌海市| 和田市| 射洪县| 永嘉县| 武川县| 麻栗坡县| 渝北区| 镇江市| 长顺县| 元朗区| 涟水县| 威远县| 台东县| 天镇县| 本溪| 金湖县| 雅安市| 金川县| 泾源县| 沙河市| 哈密市| 墨脱县| 雅安市| 高要市| 龙门县| 宿州市| 莎车县| 田林县| 洪泽县| 延长县| 兴城市| 淅川县| 沙坪坝区| 临漳县| 临安市|