SQL server 2008裡面通過sys.dm_exec_procedure_stats得到儲存過程的執行資訊
很多DBA都希望能夠得到某個儲存過程的執行資訊,比如:
1) 執行了多少次
2) 執行的執行計劃如何
3) 執行的平均讀寫如何
4) 執行平均需要多少時間
等等. 幸運的是SQL server 2008 提供了一個這樣的DMV,使得我們比較容易就得到上面的資訊。這個DMV是sys.dm_exec_procedure_stats,它輸出了下面的資訊(部分截圖,具體的請參考聯機叢書):
列名 資料型別 說明 database_id int 儲存過程所在的資料庫
ID。 object_id int 儲存過程的物件標識號。 cached_time datetime 儲存過程新增到快取的時間。 cached_time datetime 儲存過程新增到快取的時間。 last_execution_time datetime 上次執行儲存過程的時間。 execution_count bigint 儲存過程自上次編譯以來所執行的次數。 total_worker_time bigint 此儲存過程自編譯以來執行所用的
CPU 時間總量(微秒)。 last_worker_time bigint 上次執行儲存過程所用的
CPU 時間(微秒)。 total_physical_reads bigint 此儲存過程自編譯後在執行期間所執行的物理讀取總次數。 last_physical_reads bigint 上次執行儲存過程時所執行的物理讀取次數。 min_physical_reads bigint 該儲存過程在單次執行期間所執行的最少物理讀取次數。 max_physical_reads bigint 該儲存過程在單次執行期間所執行的最大物理讀取次數。 total_logical_writes bigint 此儲存過程自編譯後在執行期間所執行的邏輯寫入總次數。 last_logical_writes bigint 上次執行儲存過程時所執行的邏輯寫入次數。 min_logical_writes bigint 該儲存過程在單次執行期間所執行的最少邏輯寫入次數。 max_logical_writes bigint 該儲存過程在單次執行期間所執行的最大邏輯寫入次數。 total_logical_reads bigint 此儲存過程自編譯後在執行期間所執行的邏輯讀取總次數。 last_logical_reads bigint 上次執行儲存過程時所執行的邏輯讀取次數。 total_elapsed_time bigint 完成此儲存過程的執行所用的總時間(微秒)。 last_elapsed_time bigint 最近完成此儲存過程的執行所用的時間(微秒)。
可以通過下面的語句,得到按照執行時間排序的前10 的儲存過程的執行資訊:
SELECT TOP 10 a.object_id, a.database_id, OBJECT_NAME(object_id, database_id) 'proc name',
a.cached_time, a.last_execution_time, a.total_elapsed_time, a.total_elapsed_time/a.execution_count AS [avg_elapsed_time],
a.execution_count,
a.total_physical_reads/a.execution_count avg_physical_reads,
a.total_logical_writes,
a.total_logical_writes/ a.execution_count avg_logical_reads,
a.last_elapsed_time,
a.total_elapsed_time / a.execution_count avg_elapsed_time,
b.text,c.query_plan
FROM sys.dm_exec_procedure_stats AS a
CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) b
CROSS APPLY sys.dm_exec_query_plan(a.plan_handle) c
ORDER BY [total_worker_time] DESC;
GO
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25175503/viewspace-704874/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL server 2008裡面透過sys.dm_exec_procedure_stats得到儲存過程的執行資訊SQLServer儲存過程
- SQL Server 儲存過程SQLServer儲存過程
- 【SQL Server】--儲存過程SQLServer儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- MS SQL Server儲存過程SQLServer儲存過程
- Sql Server系列:儲存過程SQLServer儲存過程
- 解密SQL SERVER儲存過程解密SQLServer儲存過程
- 啟動SQL SERVER時自動執行儲存過程(轉)SQLServer儲存過程
- SQL Server 儲存過程的運用SQLServer儲存過程
- (SQL Server)分頁的儲存過程SQLServer儲存過程
- SQL Server基礎:儲存過程SQLServer儲存過程
- sql server儲存過程語法SQLServer儲存過程
- SQL server儲存過程函式SQLServer儲存過程函式
- SQL Server儲存過程中raiserror的使用SQLServer儲存過程AIError
- SQL Server儲存過程的優缺點SQLServer儲存過程
- 通過v$access檢視正在執行的儲存過程procedure儲存過程
- SQL Server基礎之儲存過程SQLServer儲存過程
- [MSSQL]sql 儲存過程定時執行方法SQL儲存過程
- 儲存過程中巢狀儲存過程的變數執行方式儲存過程巢狀變數
- SQL SERVER儲存過程AS和GO的含義SQLServer儲存過程Go
- Java呼叫SQL Server的儲存過程詳解JavaSQLServer儲存過程
- 儲存過程中檢視sql執行計劃的方法儲存過程SQL
- SQL Server 禁用擴充套件儲存過程SQLServer套件儲存過程
- SQL Server 資料備份儲存過程SQLServer儲存過程
- ms sql server儲存過程目前使用模板SQLServer儲存過程
- 【SQL Server】常見系統儲存過程SQLServer儲存過程
- 在.NET中用儲存過程執行SQL語句儲存過程SQL
- SER SERVER儲存過程Server儲存過程
- 通過SQL語句提取儲存過程中的內容SQL儲存過程
- MySQL儲存過程裡動態SQL的使用UXMySql儲存過程UX
- 編寫和優化SQL Server的儲存過程優化SQLServer儲存過程
- SQL Server 儲存過程的經典分頁(轉)SQLServer儲存過程
- 檢視正在執行的儲存過程儲存過程
- SQL儲存過程示例SQL儲存過程
- sqlserver2008連結伺服器中執行儲存過程配置過程SQLServer伺服器儲存過程
- 【fosoyo】SQL Server儲存過程/函式加/解密SQLServer儲存過程函式解密
- 幾個實用SQL Server取儲存過程SQLServer儲存過程
- SQL SERVER 2005分頁儲存過程SQLServer儲存過程