2012-07-27 59 views
0

我在一個擁有大約2.58億行的表上執行一個像Vertica數據庫(運行在單個節點上)的SQL,如下所示。vsql比松鼠SQL更慢SQL

我在SQuirrel SQL大約17秒內得到輸出,但在命令行模式下用vsql獲取相同查詢的輸出需要幾分鐘的時間。

select avg(item_chr_val_id) from table1 

任何想法,這可能是這個緩慢只是vsql的原因是什麼?

+0

被格式化我懷疑在執行的查詢不同。 解釋計劃中的差異是什麼? 每次執行過程中'vertica.log'顯示的是什麼?在執行的ACTUAL查詢中是否有差異(從日誌中看到)? 每個記錄的返回記錄數是否相同? 如果您在「SELECT COUNT(*)()」中包裝每個查詢,性能如何比較? Vertica無需實現可能會消除大塊磁盤IO的記錄。 – Nija 2012-07-30 15:35:00

回答

0

您使用的Vertica和JDBC jar的版本是什麼?我想知道你是否用JDBC來熟悉正確的執行計劃。雖然它看起來很奇怪,不太可能。

+0

Vertica Community版本6.0 JDBC jar:vertica-jdk5-6.0.0-0.jar – museshad 2012-07-30 07:55:54

0

延遲是由於形成操作。 在你S Sirirrel SQL我可能有限制爲100或1000作爲你的第一個格式化的數據!在vsql中,默認值是1000,但你可以改正! 要查看執行時間一個選擇是做如下

\timing 
\o \dev\null 
select avg(item_chr_val_id) from table1; 

這可能會得到一個acutare結果作爲數據不會對screan