分享方式:


sys.database_connection_stats (Azure SQL Database)

適用於:Azure SQL 資料庫

包含 SQL 資料庫 資料庫連線事件的統計數據,提供資料庫連線成功和失敗的概觀。 如需連線事件的詳細資訊,請參閱 sys.event_log 中的事件類型(Azure SQL 資料庫)。

統計資料 類型 描述
database_name sysname 資料庫的名稱。
start_time datetime2 匯總間隔開始的UTC日期和時間。 時間一律是 5 分鐘的倍數。 例如:

'2022-03-30 16:00:00'
'2022-03-30 16:05:00'
'2022-03-30 16:10:00'
end_time datetime2 匯總間隔結尾的 UTC 日期和時間。 End_time一律比相同數據列中對應的start_time晚 5 分鐘。
success_count int 成功連線的數目。
total_failure_count int 失敗連線的總數。 這是connection_failure_count、terminated_connection_count和throttled_connection_count的總,不包含死結事件。
connection_failure_count int 登入失敗次數。
terminated_connection_count int 此數據行未使用,並保留以供回溯相容性使用。
throttled_connection_count int 此數據行未使用,並保留以供回溯相容性使用。

備註

事件彙總

此檢視的事件資訊會在 5 分鐘間隔內收集並匯總。 計數數據行代表特定資料庫在特定時間間隔內發生的特定連線事件次數。

例如,如果使用者無法在 2022 年 3 月 30 日 11:00 到 11:05 之間連線到資料庫 Database1 七次,則此檢視中的單一數據列中提供這項資訊:

database_name start_time end_time success_count total_failure_count connection_failure_count terminated_connection_count throttled_connection_count
Database1 2022-03-30 11:00:00 2022-03-30 11:05:00 0 7 7 0 0

間隔start_time和end_time

事件發生在該間隔的匯總間隔或start_time之後,以及在該間隔的end_time之前,事件會包含在匯總間隔中。 例如,只在第二個間隔中包含剛好 2022-03-30 19:25:00.0000000 發生的事件,如下所示:

start_time                    end_time  
2022-03-30 19:20:00.0000000   2022-03-30 19:25:00.0000000  
2022-03-30 19:25:00.0000000   2022-03-30 19:30:00.0000000  

資料更新

此檢視中的數據會隨著時間累積。 一般而言,數據會在匯總間隔開始的一小時內累積,但最多可能需要 24 小時,所有數據才會出現在檢視中。 在此期間,單一數據列內的資訊可能會定期更新。

資料保留

此檢視中的數據會保留最多 30 天,或視資料庫數目和每個資料庫所產生的唯一事件數目而定,可能會更少。 若要保留這項資訊較長的時間,請將數據複製到不同的資料庫。 建立檢視的初始複本之後,檢視中的數據列可能會隨著數據累積而更新。 若要讓數據復本保持最新狀態,請定期執行數據列的數據表掃描,以尋找現有數據列的事件計數增加,並識別新的數據列(您可以使用開始和結束時間來識別唯一的數據列),然後使用這些變更來更新數據複本。

不包含錯誤

此檢視可能不會包含所有連線和錯誤資訊:

  • 此檢視不包含可能發生的所有 SQL 資料庫 資料庫錯誤,只會包含sys.event_log事件類型中指定的錯誤(Azure SQL 資料庫)。
  • 如果 SQL 資料庫 數據中心內發生計算機失敗,事件數據表可能會遺失少量的數據。
  • 如果已透過 DoSGuard 封鎖 IP 位址,則無法收集來自該 IP 位址的連接嘗試事件,而且不會出現在此檢視中。

權限

需要許可權才能存取 Azure SQL 資料庫 中邏輯伺服器上的 master 資料庫

範例

此範例會查詢 sys.database_connection_stats 傳回 2022 年 3 月 29 日中午到 2022 年 3 月 30 日中午之間發生之資料庫連線的摘要(UTC)。 連線到 Azure 中邏輯伺服器上的 master 資料庫 SQL 資料庫 以執行查詢。

SELECT database_name, start_time, end_time, success_count, total_failure_count, connection_failure_count
FROM sys.database_connection_stats
WHERE start_time>='2022-03-29 12:00:00' and end_time<='2022-03-30 12:00:00'
ORDER BY start_time ASC; 

下一步

在下列文章中深入瞭解 Azure SQL 資料庫: