SQL server 2008裡面透過sys.dm_exec_procedure_stats得到儲存過程的執行資訊
很多DBA都希望能夠得到某個儲存過程的執行資訊,比如:
1) 執行了多少次
2) 執行的執行計劃如何
3) 執行的平均讀寫如何
4) 執行平均需要多少時間
等等. 幸運的是SQL server 2008 提供了一個這樣的DMV,使得我們比較容易就得到上面的資訊。這個DMV是sys.dm_exec_procedure_stats,它輸出了下面的資訊(部分截圖,具體的請參考聯機叢書):
[@more@]列名 | 資料型別 | 說明 |
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/66009/viewspace-1057106/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 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儲存過程
- SQL Server基礎之儲存過程SQLServer儲存過程
- [MSSQL]sql 儲存過程定時執行方法SQL儲存過程
- 儲存過程中巢狀儲存過程的變數執行方式儲存過程巢狀變數
- 透過空間佔用和執行計劃瞭解SQL Server的行儲存索引SQLServer索引
- 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儲存過程
- 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儲存過程
- 關於SQL server2008除錯儲存過程的完整步驟SQLServer除錯儲存過程