跳至主要內容
Telemetry
資料庫可靠性 SQL查詢範例

按總時間影響對資料庫查詢進行排名

結合呼叫量和延遲來查詢消耗最多應用程式時間的資料庫指紋。

入門database_query_events已審查 2026-07-28測試用 阿帕奇 DataFusion 45.2.0

審閱者 Telemetry產品團隊 . SQL 相容性、事件契約、合成輸出和操作注意事項. 審查標準和所有權

問題已回答

哪個資料庫操作消耗的累積請求時間最多?

罕見的慢查詢和中度慢的大容量查詢需要不同的優先順序。總查詢時間估計總體應用程式影響,而 p95 保留尾部行為。

活動合約

查詢期望的欄位

欄位型別為什麼存在
timestamp_utcTimestamp查詢完成時間。
database_systemUtf8資料庫系統名稱。
operation_nameUtf8SELECT, INSERT, or another controlled operation.
query_fingerprintUtf8沒有值的標準化語句形狀。
duration_msFloat64應用程式觀察到的查詢持續時間。
request_idUtf8安全父請求識別符號。
DataFusion SQL

複製查詢

sql
SELECT
  database_system,
  operation_name,
  query_fingerprint,
  COUNT(*) AS calls,
  SUM(duration_ms) AS total_time_ms,
  approx_percentile_cont(duration_ms, 0.95) AS p95_duration_ms,
  COUNT(DISTINCT request_id) AS affected_requests
FROM database_query_events
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY database_system, operation_name, query_fingerprint
ORDER BY total_time_ms DESC
LIMIT 20;

此只讀查詢是針對空型別資料表計劃和執行的 阿帕奇 DataFusion 45.2.0。確定性樣本輸出是綜合的並單獨審查;根據您自己的資料驗證欄位型別、閾值和業務定義。 閱讀測試方法。

查詢結果

按指紋的總查詢時間

專案列表的尾部延遲較低,但消耗的聚合請求時間較多。

database_systemoperation_namequery_fingerprintcallstotal_time_msp95_duration_msaffected_requests
postgresqlSELECTproject-list-v418,4001,288,0001429,200
postgresqlSELECTmonthly-report-v2420924,0004,180410

綜合範例輸出。在將其用於操作決策之前,針對您自己的事件架構和閾值執行查詢。

Total query time by fingerprint:來自 Rank Database Queries by Total Time Impact 範例結果的合成 total_time_ms 值的靜態圖表
確定性範例輸出的可索引 SVG。下載它以獲取帶有歸屬的文章、操作手冊或設計評論。

重現範例

下載公共裝置

JSON 包包含型別化事件契約, illustrative 輸入行、確切的 SQL、預期輸出、審閱註釋和引擎版本。 CSV 包含顯示的結果。

SQL 是如何工作的

  1. 1總時間將數量和延遲結合到影響排名中。
  2. 2p95 保持低容量病理查詢可見。
  3. 3受影響的請求會區分重複呼叫,例如 N+1 行為。

需要決定的邊緣情況

  • 應用程式持續時間包括池和網路效應,除非單獨檢測。
  • 切勿記錄繫結的 SQL 值。
  • 在比較總影響之前,抽樣需要加權計數。

推薦儀表板

  • 條形:total_time_ms(指紋識別)
  • 資料表:呼叫、p95 和受影響的請求
  • 趨勢:按版本劃分的總查詢時間

警示指導

審查持續的總時間成長;僅當它驅動面向客戶的可靠性目標時才頁面。

讀取警示設定

讓查詢範例發揮作用

相關埋點和指南

繼續分析

在真實事件中執行它

建立資料表,調整欄位並儲存結果

免費開始,傳送結構化事件,並將查詢結果用作圖表、共享儀表板小工具或警示輸入。

獲取 API 金鑰