2012-07-27 151 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