檢閱查詢提醒 - 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;
  3. 評估您的查詢的結果。使用下表來找出任何遇到問題的潛在解決方案。

    注意

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

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