分享方式:


sp_monitor (Transact-SQL)

適用於:SQL Server

顯示 SQL Server 的相關統計數據。

Transact-SQL 語法慣例

語法

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_busyio_busyidle)或總數(針對其他變數)。 括弧中的數位是指自上次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)