檢閱查詢提醒 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

檢閱查詢提醒

若要使用STL_ALERT_EVENT_LOG系統資料表來識別和更正您的查詢的潛在效能問題,請遵循這些步驟:

  1. 執行下列動作來判斷您的查詢 ID:

    select query, elapsed, substring from svl_qlog order by query desc limit 5;

    substring 欄位中檢查截斷的查詢文字,判斷要選取的 query 值。如果您已執行查詢超過一次,請使用來自具有較低 query 值資料列的 elapsed 值。那是編譯版本的資料列。如果您已執行許多查詢,您可以提升 LIMIT 子句使用的值,以確定您的查詢已包含在其中。

  2. 從 STL_ALERT_EVENT_LOG 中,為您的查詢選取資料列:

    Select * from stl_alert_event_log where query = MyQueryID;
    Table showing query execution details with columns for userid, query, slice, segment, step, and event time.
  3. 評估您的查詢的結果。使用下表來找出任何遇到問題的潛在解決方案。

    注意

    STL_ALERT_EVENT_LOG 中不會有所有查詢的資料列,只有已發現問題的那些查詢。

    問題 事件值 解決方案值 建議的解決方案
    查詢中資料表的統計資料遺漏或過時。 遺漏查詢規劃器統計資料 執行 ANALYZE 命令 請參閱資料表統計資訊遺漏或過時
    查詢計畫中有巢狀迴路聯結 (最差的最佳聯結)。 查詢計畫中的巢狀迴路聯結 檢閱聯結述詞以避免笛卡兒乘積 請參閱巢狀迴圈
    掃描已略過相當多標示為已刪除但未清空的資料列,或已插入但未遞交的資料列。 已掃描大量刪除的資料列 執行 VACUUM 命令來回收刪除的空間 請參閱幽靈資料列或未遞交的資料列
    已針對雜湊聯結或彙整重新配送超過 1,000,000 個資料列。 在網路上分散了大量的資RowCount 料列:資料列已分散以處理彙總 檢閱散發索引鍵的選擇以共置聯結或彙整 請參閱次佳資料分佈
    已針對雜湊聯結播送超過 1,000,000 個資料列。 在網路間播送大量資料列 檢閱散發索引鍵的選擇以共置聯結或並考慮使用配送資料表 請參閱次佳資料分佈
    已在查詢計劃中指出 DS_DIST_ALL_INNER 重新配送樣式,其會強制序列執行,因為整個內部資料表已重新配送至單一節點。 查詢計畫中用於雜湊聯結的 DS_DIST_ALL_INNER 檢閱配送策略的選擇,以配送內部而非外部資料表 請參閱次佳資料分佈