2017-10-06 46 views
0

我想要捕獲Vertica VSQL shell中最後一次運行查詢的總行處理計數。在系統變量或系統表中,Vertica數據庫中上次執行的查詢是否有任何「行處理的計數」變量?

我知道這可以通過編程完成,但這不是問題。

要知道答案,任何系統表的指針也將有所幫助,或者Vertica的保持變量。

例如,在Teradata數據庫系統中,我知道變量activity_count,它保留上次執行的查詢中處理的記錄數。從V_MONITOR.QUERY_PROFILES

+0

你的意思是「返回記錄」或者「記錄處理」?例如,如果一個SELECT ... GROUP BY ...在從表A讀取10行並從表B讀取20行之後返回1行...你想得到什麼? – mauro

+0

我想得到1.讓我們在內部處理N個行數,但這不是必需的。我需要選擇,插入或更新返回的最終計數。 – minatverma

回答

0

檢查PROCESSED_ROW_COUNT。例如(由最後5個查詢返回的行):

SELECT 
    LEFT(query, 30), 
    processed_row_count 
FROM 
    v_monitor.query_profiles 
ORDER BY 
    query_start DESC 
LIMIT 5; 

同時檢查Fine Manual

+0

這很有幫助。但這並不是我想要的,因爲表格捕獲了query_profiles中的所有用戶。對於現在運行的每條語句,我將不得不爲運行的查詢找到Statement_ID和Transaction_ID。我只是想獲得最後一次運行sql的活動計數,我將在Logging – minatverma

+0

@minatverma中使用它。不對。您可以在「query_start」上使用SESSION_ID和LIMIT x排序來查找會話中的最後x個查詢。並且 - 爲了防止您的下一個請求 - 請檢查CURRECT_SESSION()的Fine Manual。您的問題顯示沒有研究工作... – mauro

+0

雖然我在尋找一個隱式維護的變量(我認爲Vertica沒有這個),但我接受了答案,而不需要在每個DML之後查詢系統表。 – minatverma