sp_monitor (Transact-SQL)
適用於:SQL Server
顯示 SQL Server 的相關統計數據。
語法
sp_monitor
[ ; ]
引數
無。
傳回碼值
0
(成功) 或 1
(失敗)。
結果集
資料行名稱 | 描述 |
---|---|
last_run |
上次執行的時間 sp_monitor 。 |
current_run |
正在執行時間 sp_monitor 。 |
seconds |
執行 之後 sp_monitor 經過的秒數。 |
cpu_busy |
伺服器電腦的 CPU 已完成 SQL Server 工作的秒數。 |
io_busy |
SQL Server 執行輸入和輸出作業所花費的秒數。 |
idle |
SQL Server 閑置的秒數。 |
packets_received |
SQL Server 讀取的輸入封包數目。 |
packets_sent |
SQL Server 所寫入的輸出封包數目。 |
packet_errors |
讀取和寫入封包時,SQL Server 所遇到的錯誤數目。 |
total_read |
SQL Server 讀取次數。 |
total_write |
SQL Server 的寫入數目。 |
total_errors |
讀取和寫入時 SQL Server 所遇到的錯誤數目。 |
connections |
登入或嘗試登入 SQL Server 的數目。 |
備註
SQL Server 會透過一系列函式追蹤已完成多少工作。 執行 sp_monitor
會顯示這些函式所傳回的目前值,並顯示自上次執行程序以來已變更多少。
針對每個數據行,統計數據會以數位(number)-number% 或 number(number) 的形式列印。 第一個 數位 是指 SQL Server 重新啟動之後的秒數(針對 cpu_busy
、 io_busy
和 idle
)或總數(針對其他變數)。 括弧中的數位是指自上次sp_monitor
執行以來的秒數或總數。 百分比是上次執行后 sp_monitor
的時間百分比。 例如,如果報表顯示為 cpu_busy
4250(215)-68%
,則 CPU 在 SQL Server 上次啟動時忙碌了 4,250 秒,上次執行後的 sp_monitor
215 秒,以及上次執行之後 sp_monitor
的總時間的 68%。
權限
需要系統管理員固定伺服器角色的成員資格,或直接在此預存程式上執行許可權。
範例
下列範例會報告 SQL Server 忙碌程度的相關信息。
USE master;
GO
EXEC sp_monitor;
結果集如下所示。
last_run current_run seconds
----------------------- ----------------------- ---------
2024-05-01 15:27:51.287 2024-08-21 17:20:34.097 9683563
cpu_busy io_busy idle
--------------- ------------- --------------------
14452(14451)-0% 2555(2554)-0% 4371742(4371629)-45%
packets_received packets_sent packet_errors
---------------- ------------ -------------
18032(17993) 64572(64533) 0(0)
total_read total_write total_errors connections
----------- ----------- ------------- --------------
1593(1593) 4687(4687) 0(0) 155625(155557)