Google Spanner在一次往返中多次查询

时间:2017-04-30 12:36:37

标签: google-cloud-platform google-cloud-spanner

是否有可能在往返时针对Google Spanner执行多个查询?

例如,我想在一次往返中运行以下两个查询:(来自性能问题)

select * from Test1;

select * from Test2;

2 个答案:

答案 0 :(得分:2)

不,不是在一个请求中。当前的批处理支持仅适用于写入。而是在不同的请求上并行发送2个请求。

答案 1 :(得分:2)

您可以采用其他一些方法来构建单个查询,使其包含这两个查询的结果:

  1. 使用“UNION ALL”运算符https://cloud.google.com/spanner/docs/query-syntax#unionSELECT * FROM Test1 UNION ALL SELECT * FROM Test2
  2. 仅当两个表中的列数相同且类型相同(或具有共同的超类型)时才有效

    1. 使用如下查询:
    2. SELECT ARRAY(SELECT AS STRUCT * FROM T1), ARRAY(SELECT AS STRUCT * FROM T2)

      即使两个表具有不同的列数或不同的列类型,这仍然有效。这里的限制是,这将只返回一行,其中包含将在内存中完全实现的所有数据。