Vertica DB是否支持在一个连接中进行流水线操作请求?

时间:2014-02-18 14:03:26

标签: vertica nested-queries

我想知道Vertica DB是否支持管道连接请求。 如果我们可以一次性提出多个请求,那就更明确了。

2 个答案:

答案 0 :(得分:0)

只要您的投影已经在作为谓词的列上排序,Vertica就可以进行流水线请求,优化程序将使用更快的GROUPBY PIPELINED操作。  这在您的解释计划中显示为 GROUPBY PIPELINED ,请参见此处的示例:

=> EXPLAIN SELECT COUNT(DISTINCT annual_income)    FROM customer_dimension  
   WHERE customer_gender = 'Female';

 Access Path: +-GROUPBY NOTHING [Cost: 161, Rows: 1] (PATH ID: 1)
 |  Aggregates: count(DISTINCT customer_dimension.annual_income)
 | +---> GROUPBY PIPELINED [Cost: 158, Rows: 10K] (PATH ID: 2)
 | |      Group By: customer_dimension.annual_income
 | | +---> STORAGE ACCESS for customer_dimension [Cost: 144, Rows: 47K] (PATH ID: 3)
 | | |      Projection: public.customer_dimension_DBD_1_rep_vmartdb_design_vmartdb_design_node0001
 | | |      Materialize: customer_dimension.annual_income
 | | |      Filter: (customer_dimension.customer_gender = 'Female')

答案 1 :(得分:0)

我认为你的意思是在会话中的SQL语句级别。实际上,这一切都取决于您发送SQL语句的方式。与大多数数据库一样,单个会话一次只执行一个SQL语句。

由于我不确定您要问的是什么,我会解决一些可能的问题,如果您想要更具体,可以编辑您的问题。

如果要使用vsql同步运行多个SQL语句,则只需创建一个脚本,其中多个SQL语句以;结尾。如果您没有使用vsql,那么您只需要使用您正在使用的任何方法(编程语言,ETL软件等)一次发出一个语句。

您可能在谈论SQL批处理。能够在连接上排列许多SQL语句并将其作为批处理执行,以防止繁琐的来回通信。 It does support that

但是,如果要并行运行多个SQL语句,则必须打开多个会话。