本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
STV_RECENTS
使用 STV _ RECENTS 表找出有關當前活動和最近對數據庫運行查詢的信息。
STV_ RECENTS 對所有用戶都可以看到。超級使用者可以看見所有資料列;一般使用者只能看見自己的資料。如需詳細資訊,請參閱系統資料表和檢視中資料的可見性。
此表格中的部分或全部資料也可以在SYS監視檢視中找到SYS_QUERY_HISTORY。SYS監視檢視中的資料格式化為更易於使用和理解。我們建議您使用SYS監視檢視來進行查詢。
使用 STV _ 疑難排解 RECENTS
STV_ 對RECENTS於確定查詢或查詢集合是否正在運行或完成特別有用。它也會顯示查詢執行的持續時間。這對於了解哪些查詢長時間執行很有幫助。
您可以RECENTS將 STV _ 聯結至其他系統檢視,例如STV_INFLIGHT,以收集有關執行查詢的其他中繼資料。(範例查詢部分中有一個範例展示如何執行此操作。) 您也可以使用此檢視中的傳回記錄以及 Amazon Redshift 主控台中的監控功能,進行即時疑難排解。
補充 STV _ RECENTS 包含的系統檢視STL_QUERYTEXT,可擷取SQL指令的查詢文字,以及SVV_QUERY_INFLIGHTINFLIGHT將 STV _ 連接到 STL _ QUERYTEXT。
資料表欄
欄名稱 | 資料類型 | 描述 |
---|---|---|
userid | integer | 產生項目之使用者的 ID。 |
status | character(20) | 查詢狀態。有效值為 Running 、Done 。 |
starttime | timestamp | 查詢開始的時間。 |
持續時間 | integer | 工作階段開始之後的時間 (微秒)。 |
user_name | character(50) | 執行處理程序者的使用者名稱。 |
db_name | character(50) | 資料庫的名稱。 |
query | character(600) | 查詢文字,最多 600 個字元。任何額外的字元都會被截斷。 |
pid | integer | 與查詢關聯之工作階段的處理程序 ID,已完成之查詢的此 ID 一律為 -1。 |
範例查詢
若要判斷目前正在資料庫上執行的有哪些查詢,請執行下列查詢:
select user_name, db_name, pid, query from stv_recents where status = 'Running';
下面的示例輸出顯示了在TICKIT數據庫上運行的單個查詢:
user_name | db_name | pid | query ----------+---------+---------+------------- dwuser | tickit | 19996 |select venuename, venueseats from venue where venueseats > 50000 order by venueseats desc;
下列範例傳回正在執行或在佇列中等待執行之查詢 (如果有) 的清單:
select * from stv_recents where status<>'Done'; status | starttime | duration |user_name|db_name| query | pid -------+---------------------+----------+---------+-------+-----------+------ Running| 2010-04-21 16:11... | 281566454| dwuser |tickit | select ...| 23347
除非您正在執行多個並行查詢,而且其中部分查詢位於佇列中,否則此查詢不會傳回結果。
以下範例延伸之前的範例。在此情況中,真正「進行中」(執行中而非等待中) 的查詢會排除在結果之外:
select * from stv_recents where status<>'Done' and pid not in (select pid from stv_inflight); ...
如需疑難排解查詢效能的詳細提示,請參閱查詢疑難排解。