我在一个大约有 2.58 亿行的表上的 Vertica 数据库(在单个节点上运行)中执行如下 SQL。
在 SQuirrel SQL 中,我在大约 17 秒内获得了输出,但在命令行模式下,在 vsql 中获得相同查询的输出需要几分钟。
select avg(item_chr_val_id) from table1
任何想法,这种缓慢的原因可能是什么vsql
?
您使用的是什么版本的 Vertica ande JDBC jar?我想知道您是否以某种方式幸运地使用 JDBC 进入了正确的执行计划。虽然这看起来很奇怪而且不太可能。
延迟是由于格式化操作。在您的 SQuirrel SQL 中,我的第一个格式化数据可能有 100 或 1000 个限制!在 vsql 中,默认值是 1000 但你可以 chenge !! 要查看执行时间,一种选择是执行以下操作
\timing
\o \dev\null
select avg(item_chr_val_id) from table1;
这可能会得到一个准确的结果,因为数据不会在屏幕上格式化