2013-01-24 19 views
0

我正在測試hive中一些查詢的性能,因此應該避免將查詢結果打印到標準輸出或文件。在Oracle SQL再加上,我可以做使用打印關閉查詢執行分析目的

oracle> SET autotrace traceonly; 

oracle> set autotrace on statistics; 

然後

oracle> some query; 
oracle> set autotrace trace off; 

是否有蜂巢相當於報表?

回答

2

您可以使用Hive命令行實用程序的--silent-S選項來擺脫Hive日誌消息,但仍然會在stdout上輸出查詢的輸出。爲避免這種情況,您可以重定向到/dev/null,例如:

$ hive -S -e "SELECT * FROM mytable" > /dev/null 
+0

'-S'也會停止打印配置單元狀態。我會避免'-S'仍然能夠跟蹤蜂巢狀態。重定向到'/ dev/null'似乎是我需要的,但我想知道是否有任何開銷。比較_print到stdout_,_redirect到file_和_to/dev/null_的選擇,它們的額外(除查詢本身之外)額外開銷。 – Causality

+0

@Causality'/ dev/null'就像一個普通文件,只是它丟棄了寫入它的所有東西,但它仍然是一個常規文件,所以沒有開銷。和打印到標準輸出相比,我認爲這種影響很小,因爲它只是一個標準的unix重定向。當你在處理像這裏那樣的不需要的輸出流時,使用/ dev/null是一條路。 –

+0

我更新了問題。基本上,oracle sqlplus''set autotrace'是我想要的,因爲db引擎本身會禁用打印查詢結果,而'>/dev/null'仍然會「打印」結果。 – Causality