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

透過指紋查詢緩慢的資料庫查詢

按慢查詢率、平均持續時間和最差觀察持續時間對規範化資料庫操作進行排名,無需儲存原始 SQL 或參數。

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

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

問題已回答

哪些資料庫操作始終慢到足以進行調查?

原始 SQL 通常包含識別符號、值和無限的變體。受控查詢指紋將等效操作保持在一起,因此較慢的查詢速率可以識別重複的應用程式路徑,而無需將遙測資料轉換為查詢文字存檔。

活動合約

查詢期望的欄位

欄位型別為什麼存在
timestamp_utcTimestamp資料庫操作完成時(UTC)。
query_fingerprintUtf8沒有參數值的標準化、有界操作標籤。
serviceUtf8發出操作的應用程式或工作人員。
database_nameUtf8批准的邏輯資料庫名稱。
statusUtf8成功或失敗。
duration_msFloat64端到端資料庫操作持續時間(以毫秒為單位)。
rows_returnedInt64當客戶端公開計數時返回或受影響的行。
releaseUtf8發出查詢的應用程式版本。
environmentUtf8部署環境。
DataFusion SQL

複製查詢

sql
SELECT
  query_fingerprint,
  service,
  database_name,
  COUNT(*) AS executions,
  SUM(CASE WHEN duration_ms >= 1000 THEN 1 ELSE 0 END) AS slow_executions,
  100.0 * SUM(CASE WHEN duration_ms >= 1000 THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS slow_query_rate_pct,
  AVG(duration_ms) AS average_duration_ms,
  MAX(duration_ms) AS maximum_duration_ms
FROM database_query_events
WHERE timestamp_utc >= now() - INTERVAL '30 days'
  AND environment = 'production'
GROUP BY query_fingerprint, service, database_name
HAVING COUNT(*) >= 10
ORDER BY slow_query_rate_pct DESC, executions DESC
LIMIT 20;

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

查詢結果

指紋慢查詢率

大多數執行中發票更新都很慢,而目錄查詢仍低於說明性的一秒閾值。

query_fingerprintservicedatabase_nameexecutionsslow_executionsslow_query_rate_pctaverage_duration_msmaximum_duration_ms
UPDATE invoices SET status = ?billing-workerapp_production108801,2501,700
SELECT checkout WITH line_itemscheckout-apiapp_production126501,012.51,600
SELECT products BY categorycatalog-apicatalog_production1200330440

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

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

重現範例

下載公共裝置

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

SQL 是如何工作的

  1. 1指紋是應用程式控制的標籤,而不是原始 SQL。這限制了基數並避免捕獲參數值。
  2. 2速率可區分偶爾緩慢的高容量操作和大多數時間緩慢的操作。
  3. 3最小執行計數可以防止單個冷查詢主導排名。

需要決定的邊緣情況

  • 每個工作負載選擇一個慢速閾值;一秒是說明性的,對於互動式請求來說可能太長了。
  • 客戶端持續時間包括池等待和網路時間,除非這些階段是單獨記錄的。
  • 不要記錄原始查詢參數、連線字串或不受限制的 SQL 文字。

推薦儀表板

  • 酒吧:slow_query_rate_pct by query_fingerprint
  • 趨勢:average_duration_ms(按版本)
  • 資料表:所選指紋和服務的最新故障

警示指導

當大容量指紋仍然高於其審查的多個完整儲存桶的慢查詢率時發出警示。

讀取警示設定

讓查詢範例發揮作用

相關埋點和指南

定義源資料

此分析的事件模式

繼續分析

在真實事件中執行它

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

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

獲取 API 金鑰