STL_UNIQUE - Amazon Redshift

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

STL_UNIQUE

分析在 SELECT 清單中使用 DISTINCT 函數時發生的執行步驟,或在 UNION 或 INTERSECT 查詢中複製或移除時發生的執行步驟。

所有使用者都可看見 STL_UNIQUE。超級使用者可以看見所有資料列;一般使用者只能看見自己的資料。如需詳細資訊,請參閱 系統資料表和檢視中資料的可見性

注意

STL_UNIQUE 僅包含在主叢集上執行的查詢。但不包含在並行擴縮叢集上執行的查詢。若要存取在主要和並行擴縮叢集上執行的查詢,建議您使用 SYS 監視檢視 SYS_QUERY_DETAIL。SYS 監視檢視中的資料會格式化為更易於使用和理解。

資料表欄

欄名稱 資料類型 描述
userid integer 產生項目的使用者之 ID。
query integer 查詢 ID。查詢欄可用於加入其他系統表格與檢視。
分割 integer 識別執行查詢之配量的數字。
segment integer 識別查詢區段的號碼。
step integer 執行的查詢步驟。
starttime timestamp 查詢開始的時間,以 UTC 表示。總時間包括佇列和執行。秒小數部分的精確度為 6 位元。例如:2009-06-12 11:29:19.131358
endtime timestamp 查詢完成的時間,以 UTC 表示。總時間包括佇列和執行。秒小數部分的精確度為 6 位元。例如:2009-06-12 11:29:19.131358
tasknum integer 指派執行步驟的查詢任務程序編號。
rows bigint 已處理的列總數。
type character(6) 步驟的類型。有效的 值如下:
  • HASHED。表示步驟已使用分組且未排序的彙整。

  • PLAIN。表示步驟已使用未分組的純量彙整。

  • SORTED。表示步驟已使用分組且排序的彙整。

is_diskbased character(1) 若為 true (t),查詢是以磁碟型操作方式執行。若為 false (f),查詢是在記憶體中執行。
slots integer 雜湊儲存貯體的總數。
workmem bigint 已指派給步驟之運作中記憶體中的位元組總數。
max_buffers_used bigint 在移至磁碟之前於雜湊表中使用的緩衝區數目上限。
resizes integer 此資訊僅供內部使用。
occupied integer 此資訊僅供內部使用。
flushable integer 此資訊僅供內部使用。
used_unique_prefetching character(1) 此資訊僅供內部使用。
位元組 biginit 步驟之所有輸出列的位元組數目。

範例查詢

假設您執行下列查詢:

select distinct eventname from event order by 1;

假設前一個查詢的 ID 為 6313,下列範例會顯示唯一步驟針對區段 0 與 1 中之每個配量所產生的資料列數目。

select query, slice, segment, step, datediff(msec, starttime, endtime) as msec, tasknum, rows from stl_unique where query = 6313 order by query desc, slice, segment, step;
query | slice | segment | step | msec | tasknum | rows -------+-------+---------+------+------+---------+------ 6313 | 0 | 0 | 2 | 0 | 22 | 550 6313 | 0 | 1 | 1 | 256 | 20 | 145 6313 | 1 | 0 | 2 | 1 | 23 | 540 6313 | 1 | 1 | 1 | 42 | 21 | 127 6313 | 2 | 0 | 2 | 1 | 22 | 540 6313 | 2 | 1 | 1 | 255 | 20 | 158 6313 | 3 | 0 | 2 | 1 | 23 | 542 6313 | 3 | 1 | 1 | 38 | 21 | 146 (8 rows)