上期我們講到LoadRunner性能測如何跟蹤等待,這期我們講LoadRunner性能測試SQL profiler監控查詢。
SQL Profiler監控查詢
SQL Server Profiler是一個功能豐富的界面,用於創建和管理跟蹤
並分析和重播跟蹤結果。對SQL Server Profiler的使用取決於您出於何種目的監視SQL Server資料庫引擎實例。例如,如果正處於生產周期的開發階段,則會更關心如何儘可能地獲取所有的性能詳細信息,而不會過於關心跟蹤多個事件會造成多大的開銷。相反,如果正在監視生產伺服器,則會希望跟蹤更加集中,並儘可能佔用較少的時間,以便儘可能地減輕伺服器的跟蹤負載。本小節中將會介紹如何及何時使用SQL Profiler收集並分析查詢性能數據。
SQL Trace相關術語
在設置一個跟蹤之前,需要理解SQL Profiler和SQL Trace中常用的術語,以下是常用的術語:
伺服器實例:是指Profiler跟蹤時需要連接到的SQL Server的一個實例,需要指定實例名稱,如果SQL Server運行在windows,那麼需要知道其虛擬名稱。
SQL跟蹤事件:是指在整個性能監控過程中需要跟蹤哪些方面的問題,該項設置直接影響到監控過程中將獲得的數據,一個跟蹤事件代表SQL Server產生的不同的活動,將問題症狀與可跟蹤的事件進行匹配是一項比較難的工作。
事件類別:在SQL Profiler中可跟蹤事件有很多,事件類別是對事件類進行分組,相同類的事件歸納到一個事件類別中,例如所以關於lock的事件類都分組到Locks事件類別中。SQL Profiler中的事件類別如圖所示。
事件類:是指能夠被SQL Server實例跟蹤的特定類型事件,事件類包含描述一個事件的所有數據,在SQL Server中,大約有200個事件類,而一個事件類別中又包含多個事件類,每個事件類都有自身的數據列集
(TextData、ApplicationName、NTUserName等)
如圖所示。
數據列:數據列與一個跟蹤中所捕獲的事件類相關聯,它是每個事件類中的屬性,一個事件類可能有多個不同的相關聯的數據列。在SQL Server Profilere有一種內部邏輯處理數據列與事件類之間的依賴關係,這樣每個事件類只顯示與其相關聯的一些數據列,而並不是每個事件類都顯示出所有的數據列。如圖所示。
跟蹤:是指由SQL Server的一個實例返回的可跟蹤的事件類及數據的集合,它是一個動作,是對一個SQL Server中的一個實例進行監控,並且在監控過程中收集事件類的相關數據,跟蹤會根據選中的事件類、數據列以及篩選器來收集監控過程中的數據。
跟蹤文件:是指保存跟蹤結果的文件,在設置跟蹤過程可以指定跟蹤文件的位置。
跟蹤表:是指將保存跟蹤結果保存到一個資料庫的表中,在設置跟蹤過程中可以將跟蹤數據保存到指定的資料庫表中。
篩選器:在創建一個跟蹤或模板時,如果不對列進行篩選,那麼在跟蹤過程中SQL Profiler會收集事件類中所有列的數據值,為了防止跟蹤變得過於龐大,通過設置篩選器可以對事件數據進行篩選,確保只收集其中一部分數據。
例如:對SPID進行篩選,可以指定跟蹤的SPID,這樣跟蹤過程中只會收集所指定的SPID的相關數據。篩選器設置如圖所示。
模板:模板用於定義一個跟蹤的默認配置,SQL Server Profiler可以自定義模板也可以使用自建的模板,自建模板包括:
Standard、TSQL、TSQL_Duration、
TSQL_Grouped、TSQL_Replay、TSQL_SPs和Tuning。
在測試過程中可以使用自建模板也可以自己配置模板,模板中包括監控的事件類,如果自定義模板,需要確定監控的事件、數據列以及篩選器。