五 效能監視(3)SQL跟蹤

2021-09-03 06:35:19 字數 1235 閱讀 5495

一、概念

1. sql跟蹤(sql trace)

sql server 的底層有乙個事件子系統,稱為sql trace。dba可能通過這個事件子系統捕捉與sql server例項中可能發生的200多個事件有關的資訊。

sql server profiler是乙個圖形化工具,提供了sql trace子系統最常用的介面。sql server 提供 transact-sql 系統儲存過程來建立對 sql server 資料庫引擎例項的跟蹤。 可以不使用 sql server profiler,而使用這些系統儲存過程從您自己的應用程式中手動建立跟蹤。 這樣,您就可以針對企業的特定需求編寫自定義應用程式。 

在 sql 跟蹤中,如果事件是在跟蹤定義中列出的事件類的例項,則收集這些事件。 可以將這些事件從跟蹤中篩選出來或為其目標進行排隊。 目標可以是檔案或 sql server 管理物件 (smo),它可以使用管理 sql server 的應用程式中的跟蹤資訊。 

2. sql 跟蹤結構

事件源可以是生成跟蹤事件(例如 transact-sql 批處理)或 sql server 事件(例如死鎖)的任何源。 有關事件的詳細資訊,請參閱 sql server 事件類參考。 事件發生後,如果該事件類已經包含在跟蹤定義中,則跟蹤將收集該事件資訊。 如果已經在跟蹤定義中為該事件類定義篩選器,則將應用這些篩選器並將跟蹤事件資訊傳遞到佇列。 從佇列中,跟蹤資訊或者被寫入檔案,或者由應用程式(例如 sql server profiler)中的 smo 使用。 

以下關係圖顯示了在跟蹤期間 sql 跟蹤如何收集事件。 

二、使用sql跟蹤的方法

通過系統儲存過程進行跟蹤的過程如下: 

(1)使用 sp_trace_create 建立跟蹤。為儲存過程 sp_trace_create 的 @tracefile 引數指定路徑和檔名後,sql server 將跟蹤結果儲存到檔案中。

(2)使用 sp_trace_setevent 新增事件。

(3)使用 sp_trace_setfilter 設定篩選器(可選)

(4)使用 sp_trace_setstatus 啟動跟蹤。

(5)使用 sp_trace_setstatus 停止跟蹤。

(6)使用 sp_trace_setstatus 關閉跟蹤。

sql跟蹤可以通過儲存過程建立對資料庫例項的跟蹤。你可以針對特定的需求在自定義的應用程式中手動建立跟蹤。

學習隨記3 SQL複習

dml 資料操作語言 ddl 資料定義語言 select 獲取資料 update 更新資料 delete 從資料表中刪除資料 insert into 插入資料 select distinct 列 from 表 返回唯一不同的值 select 列 from 表 where 列 運算子 值 篩選 ord...

3 sql 表的連線

摘自 表連線分為 cross join innert join outer join self join。一 cross join 交叉連線 cross join連線用於生成兩張表的笛卡爾集。1 返回的記錄數為兩個表的記錄數乘積。比如,a表有n條記錄,b表有m條記錄,則返回n m條記錄。2 將a表的...

五 效能監視(4)擴充套件事件

一 擴充套件事件 extended events,簡稱xe sql server 2008提供了一種新的方法,用來診斷故障和捕獲內部資訊。與其它跟蹤技術相比,擴充套件事件的優勢在於 1.擴充套件事件位於sql server的總體層中,因此它能與各級sql server主機進行互動。2.擴充套件事件是...