国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

使用索引調節向導調整應用程序的性能

2024-07-21 02:31:07
字體:
來源:轉載
供稿:網友

你可以使用SQL服務器調節器(SQL Server PRofiler)工具來收集服務器當前活動的重要信息。被這個Profiler工具所追蹤到的信息(包含有數據庫的真實負載)能夠被用在多種場合里。現在讓我們來看看如何使用Profiler收集能夠被索引調節向導所使用的數據,以及你該如何使用這些工具來調試你的應用程序。

什么時候使用它?


Profiler工具能夠用在數據庫開發生命周期的所有階段。例如,在初始階段,你可以用它來輔助調試或者查明你的應用程序應該如何以及在何時調用存儲過程和其他的SQL聲明。在我最近所參與的一個項目里,一個已編譯組件一調用數據庫就超時,在這種情況下,我們使用了Profiler來辨別SQL的聲明和應用程序調用它們的順序。使用這個工具就幫助我們發現了邏輯上的錯誤,這樣我們就成功地更正了自己的應用程序。

在開發過程后面的階段里,Profiler能夠有助于辨別負載/壓力測試(load/stress testing)過程中應用程序的瓶頸。你還可以用它來監視日常的活動、執行安全審查,以及辨別其他影響性能的因素(例如設計不佳的查詢)。

 

在Profiler里,你必須決定要記錄什么,并考慮將所記錄下來的服務器活動應該被保存在哪里。你可以選擇將自己的追蹤信息保存到數據庫表格里或者是文件里。當選擇將捕捉到的數據保存到表格里的時候,你還可以設置要保存數據行的最大數量。這樣,Profiler就能夠在一個任務繁重的系統里迅速地捕捉大量數據。但是由于這一點,你可能想要限制在一次追蹤之中Profiler所要捕捉的數據總量。

 

你可以選擇將所獲得的信息保存到追蹤文件里。如果選擇了這個選項,你就能夠在文件達到了一定的大小之后將文件信息覆蓋掉,這將限制捕捉信息文件大小的上限。而且,你可以選擇要從哪里開始進行追蹤處理。這就非常像在應用程序層里編寫代碼選擇是在客戶端還是在服務器端進行指針執行。在正式的產品系統里,你可能不希望在服務器上放上這么一個工作負載,這樣的話,讓客戶端處理可能就是最好的選擇了。

 

當在這兩個選項之間進行選擇的時候,你的主要注意力應該放在其對數據庫/應用程序性能的影響上。對于大多數類型的日志記錄工作而言,將其保存為文件對系統的負擔要比保存到數據庫的小,所以對于高流量的實際產品系統來說,將日至保存為文件可能是更好的選擇。

使用Profiler

你可以使用Profiler創建和保存能夠被索引調節向導所使用的追蹤結果。為了使用Profiler為向導所收集到的數據,你可以選擇SQL服務器自帶的缺省模板。要做到這一點,在文件(File)菜單里選擇新建|追蹤(New | Trace)。在常規(General)選項卡里(圖A)選擇用于向導的缺省模板。你就會看到可以將追蹤結果保存為文件或者到數據庫里。

圖A

Profiler的常規選項卡

 

在事件(Events)選項卡里(B),和向導相關聯的事件類型有兩個:RPC:Completed用于存儲過程,以及SQL:BatchCompleted用于其他的TSQL聲明。

圖B

Profiler的事件選項卡

 

在使用調節器對SQL服務器的活動進行捕捉的時候,你會在一段相對較短的時間內獲得大量的數據,這取決于你服務器的使用情況。所以你就應該選擇只記錄下你所需要的項目而不是修改缺省的模板。而且在運行Profiler的時候,你要確保在捕捉期間典型的應用程序活動會發生,這對于保證索引調節向導的質量是非常重要的,除非你是正在試圖解決某個特定的問題,在后面這種情況下你要確信指定的事件正在發生。

一旦追蹤被保存到文件里或者數據庫表格里,你就可以回放這一過程中所發生的所有活動——設置你希望的斷點——這和你使用開發人員的IDE調試器很類似,如C所示。

圖C

回放Profiler的追蹤內容

 

再次強調,捕捉到的數據會是相當多的。為了幫助限制所捕捉數據的數量,你可以定義過濾器。在定義自己的過濾器(圖D)時,設置時間較長的查詢是很常見的。

圖D

過濾數據

 

Profiler還能記錄許多其他類型的數據庫活動。Profiler本身就有許多選項供你選擇。要獲得更多的信息,我建議去查詢MSDN在線或者SQL服務器的文檔。Profiler會成為任何DBA的朋友,另外我還建議你去考察一下它的其他許多選項。

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东乡族自治县| 彰武县| 博湖县| 肥乡县| 常熟市| 磴口县| 德昌县| 莎车县| 淅川县| 曲阜市| 江北区| 岐山县| 城步| 分宜县| 德庆县| 安达市| 竹山县| 鱼台县| 乡宁县| 航空| 南通市| 海门市| 手机| 普宁市| 峨边| 湖口县| 焦作市| 阜平县| 宿州市| 邳州市| 和林格尔县| 胶州市| 新安县| 柳江县| 合江县| 宁津县| 伊宁县| 伊吾县| 苏尼特右旗| 阳高县| 大丰市|