STV_INFLIGHT - Amazon Redshift

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

STV_INFLIGHT

使用 STV _ INFLIGHT 表格來判斷叢集上目前正在執行的查詢。如果您要進行疑難排解,檢查長時間執行查詢的狀態會很有幫助。

STV_ INFLIGHT 不僅顯示領導者節點查詢。如需詳細資訊,請參閱僅限領導節點函數。STV_ INFLIGHT 對所有用戶都可以看到。超級使用者可以看見所有資料列;一般使用者只能看見自己的資料。如需詳細資訊,請參閱系統資料表和檢視中資料的可見性

此表格中的部分或全部資料也可以在SYS監視檢視中找到SYS_QUERY_HISTORY。SYS監視檢視中的資料格式化為更易於使用和理解。我們建議您使用SYS監視檢視來進行查詢。

使用 STV _ 疑難排解 INFLIGHT

如果您使用 STV _ INFLIGHT 來疑難排解查詢或查詢集合的效能,請注意下列事項:

  • 長時間運行的開放交易通常會增加負載。這些開啟的交易可能會導致其他查詢的執行時間較長。

  • 長時間執行COPY和ETL工作可能會影響叢集上執行的其他查詢,如果它們需要大量的計算資源。在大多數情況下,將這些長時間執行的工作移至低使用率的時間,可提高報告或分析工作負載的效能。

  • 有跡象表明,提供相關信息給 STV _ INFLIGHT。其中包括STL_QUERYTEXT擷取指SQL令的查詢文字,以及SVV_QUERY_INFLIGHTINFLIGHT將 STV _ 連接到 STL _ QUERYTEXT。您也可以使用 STV _ STV_RECENTS INFLIGHT 進行故障排除。例如,STV_ RECENTS 可以指出特定查詢處於「執行中」或「完成」狀態。結合此資訊與來自 STV _ 的結果INFLIGHT可以提供有關查詢屬性和計算資源影響的詳細資訊。

您也可以使用 Amazon Redshift 主控台監控執行中的查詢。

資料表欄

欄名稱 資料類型 描述
userid integer 產生項目之使用者的 ID。
分割 integer 查詢執行時所在的分割。
query integer 查詢 ID。可用於聯結其他系統資料表與檢視。
label character(320) 用於執行查詢的檔案名稱或使用 SET QUERY _ GROUP 指令定義的標籤。如果查詢不是以檔案為基礎或未設定 QUERY _ GROUP 參數,則此欄位為空白。
xid bigint 交易 ID。
pid integer 處理程序 ID。工作階段中的所有查詢都是在相同的處理程序中執行,所以若您在相同的工作階段中執行一系列查詢,則此值通常會保持不變。您可以使用此資料欄來聯結至 STL_ERROR 資料表。
starttime timestamp 查詢開始的時間。
text character(100) 查詢文字,如果陳述式超過限制,將會截斷為 100 個字元。
suspended integer 查詢是否已遭停用。0 = false;1 = true。
insert_pristine integer 當目前查詢正在執行時,寫入查詢是否能夠執行。1 = 不允許寫入查詢。0 = 允許寫入查詢。此欄位適用於偵錯。
concurrency_scaling_status integer

指出查詢是執行於主要叢集或並行擴展叢集,可能的值如下:

0 - 執行於主要叢集

1 - 執行於並行擴展叢集

範例查詢

若要檢視目前正在資料庫上執行的所有使用中查詢,請輸入下列查詢:

select * from stv_inflight;

下列範例輸出顯示目前正在執行的兩個查詢,包括 STV _ INFLIGHT 查詢本身,以及從指令碼執行的查詢,名為avgwait.sql

select slice, query, trim(label) querylabel, pid, starttime, substring(text,1,20) querytext from stv_inflight; slice|query|querylabel | pid | starttime | querytext -----+-----+-----------+-----+--------------------------+-------------------- 1011 | 21 | | 646 |2012-01-26 13:23:15.645503|select slice, query, 1011 | 20 |avgwait.sql| 499 |2012-01-26 13:23:14.159912|select avg(datediff( (2 rows)

下列查詢會選擇幾個欄,包括 concurrency_scaling_status。此欄指出是否要將查詢傳送至並行擴展叢集。如果該值對於某些結果是 1,則表示正在使用並行擴展運算資源。如需詳細資訊,請參閱並行擴展

select userid, query, pid, starttime, text, suspended, concurrency_scaling_status from STV_INFLIGHT;

範例輸出會顯示傳送至並行擴展叢集的一個查詢。

query | pid | starttime | text | suspended | concurrency_scaling_status --------+---------+----------------------------|------------------------|---------------|------------------------------- 1234567 | 123456 | 2012-01-26 13:23:15.645503 | select userid, query... 0 1 2345678 | 234567 | 2012-01-26 13:23:14.159912 | select avg(datediff(... 0 0 (2 rows)

如需疑難排解查詢效能的詳細提示,請參閱查詢疑難排解