【1】SQL Server Profiler就是一個Sql的監視工具,可以具體到每一行Sql語句,每一次操作,和每一次的連接
【2】
做數據交互時,往往很難直觀的看到最后在數據庫中執行的SQL語句。此時我們只能進去數據庫中通過執行一些SQL語句來監控數據庫運行情況了。以下是SQL監控腳本(適用於SQL Server 2005)
SELECT creation_time N'語句編譯時間'
,last_execution_time N'上次執行時間'
,total_physical_reads N'物理讀取總次數'
,total_logical_reads/execution_count N'每次邏輯讀次數'
,total_logical_reads N'邏輯讀取總次數'
,total_logical_writes N'邏輯寫入總次數'
, execution_count N'執行次數'
, total_worker_time/1000 N'所用的CPU總時間ms'
, total_elapsed_time/1000 N'總花費時間ms'
, (total_elapsed_time / execution_count)/1000 N'平均時間ms'
,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset END
- qs.statement_start_offset)/2) + 1) N'執行語句'
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
where SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset END
- qs.statement_start_offset)/2) + 1) not like '%fetch%'
ORDER BY total_elapsed_time / execution_count DESC
另外轉一篇文章《SQL Server 2005 五個動態管理對象》
這篇文章會詳細解釋數據庫監控的對象。
【3】SELECT * From ::fn_dblog(Default,Default)